super 在Java继承中的作用??

2020-05-30 教育 84阅读
要讲super就不能不提this,下面从4个角度讲解一下super(需要对比的时候拿this对比一下,加深理解)
1. super关键字表示超(父)类的意思。this变量代表对象本身。
2. super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。其中超类是最近的父类。
3.调用super() 父类构造函数的时候只能调用在子类构造函数的第一行
4.this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this
例如:
class Person {
protected void print() {
System.out.println("The print() in class Person.");
}
}
public class DemoSuper extends Person {
public DemoSuper(){
super(); //调用父类的构造方法,而且放第一行,如果不写,系统自动加
}
public void print() {
System.out.println("The print() in class DemoSuper.");
super.print();// 调用父类的方法
}
public static void main(String[] args) {
DemoSuper ds = new DemoSuper();
ds.print();
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com