首页 >Java >java教程 >java关键字super和this是什么?有什么区别?

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

青灯夜游
青灯夜游原创
2018-11-21 14:08:475737浏览

本篇文章给大家带来的内容是介绍java关键字super和this是什么?有什么区别?,让大家了解关键字super和this的作用,关键字super和this的区别,以及简单介绍一下superL()和this()。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。

关键字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(); 
	} 
}

运行结果:

2.jpg

注: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(); 
	} 
}

运行输出:

3.jpg

区别总结:

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

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

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

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

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

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

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

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

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

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程推荐:java教程

以上是java关键字super和this是什么?有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn