关键字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(); } }
运行结果:
php入门到就业线上直播课:进入学习
注: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(); } }
运行输出:
区别总结:
this关键字:表示当前对象,也就是当前类对象,调用当前的类成员(变量和方法);
super关键字:表示当前类的父类,调用父类的成员(变量和方法);
this.的使用范围要比super.的范围更大。
this()与super()的简单介绍
1、this()和super()都是使用只能使用于构造方法中,
2、this()调用本类的构造,如果括号内有形参,则是调用本类的与之相对应参的构造方法;super()调用父类指定的构造方法,
3、都只能写在构造方法的第一句;
4、super()可以不写,在不写的时候会默认调用父类的无参构造,
5、this()与super()不能共存,两者只能使用一个。
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程推荐:java教程!
以上就是java关键字super和this是什么?有什么区别?的详细内容,更多请关注php中文网其它相关文章!
前端(VUE)零基础到就业课程:点击学习
自己动手写 PHP MVC 框架:点击学习
![](http://m.sbmmt.com/img/upload/article/000/000/020/633501a29d313483.png)