java关键字super和this有那些区别

这篇文章主要介绍了java关键字super和this有那些区别,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

石狮ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

关键字super和this是什么?有什么区别?

this关键字

this是java中的保留关键字,即我们不能将其用作标识符。

this:代表当前对象,它允许访问当前类的方法/属性(包括其自己的私有方法/属性)。

简单来说:能访问操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法。

示例:

class RR { 
	int a = 10; 
	static int b = 20; 

	void GFG() { 
		this.a = 100; 
		this.b = 600; 
		System.out.println(a); 
		System.out.println(b); 
	} 

	public static void main(String[] args) { 
		new RR().GFG(); 
	} 
}

运行结果:

java关键字super和this有那些区别

注:this只能在类的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。

super关键字

super是java中的保留关键字,即我们不能将其用作标识符。

super代表当前对象类的父类对象部分,用来引用被屏蔽的成员变量和成员方法。允许访问公共(受保护)的方法或属性,无法访问父级的私有方法或属性。

super不能操作到本类的属性和方法;能操作到父类的能被父类访问修饰符允许的属性和方法,只有当本类中调用被重写前的效果时使用super.的方法。

使用super的目的是访问直接父类中被屏蔽的成员,注意是直接父类(就是类之上最近的超类)。

示例:

class Parent { 
	// instance variable 
	int a = 10; 

	// static variable 
	static int b = 20; 
} 
class Base extends Parent { 
	void rr() { 
		System.out.println(super.a); 
		System.out.println(super.b); 
	} 

	public static void main(String[] args) { 
		new Base().rr(); 
	} 
}

运行输出:

java关键字super和this有那些区别

区别总结:

this关键字:表示当前对象,也就是当前类对象,调用当前的类成员(变量和方法);

super关键字:表示当前类的父类,调用父类的成员(变量和方法);

this.的使用范围要比super.的范围更大。

this()与super()的简单介绍

1、this()和super()都是使用只能使用于构造方法中,

2、this()调用本类的构造,如果括号内有形参,则是调用本类的与之相对应参的构造方法;super()调用父类指定的构造方法,

3、都只能写在构造方法的第一句;

4、super()可以不写,在不写的时候会默认调用父类的无参构造,

5、this()与super()不能共存,两者只能使用一个。

感谢你能够认真阅读完这篇文章,希望小编分享java关键字super和this有那些区别内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!


分享名称:java关键字super和this有那些区别
地址分享:http://scyanting.com/article/ijpshp.html