继承(4)
大家好,今天我们继续学习继承,今天我们着重介绍super关键字,来看。
此时dog中有两个name变量,一个是继承父类的,一个是自己的。
1.5super关键字
由于设计不好,或者因为场景需要,子类和父类中可能会存在相同名称的成员,如果要在子类方法中访问父类同名成员时,该如何操作?直接访问是无法做到的,java提供了super关键字,该关键字主要作用:在子类方法中访问父类的成员.
在子类方法中,如果想要明确访问父类中成员时,借助super关键字即可.
注意事项:
1.只能在非静态方法中使用
2.在子类方法中,访问父类的成员变量和方法
super.data;访问父类的普通成员变量
super .func();调用父类的普通成员方法
注:静态是调用不了的,静态方法是不支持super调用的,所有静态的都是通过类名访问的.不建议通过对象访问,引用访问..
静态方法中不能会有非静态的成员,因为静态不依赖对象,在类刚开始加载的时候都要被加载.所以静态里面不能用this,也不能用super. super();调用父类的构造方法.
this访问:如果自己有就访问自己的,自己没有就访问父类的.
super访问:只会访问从父类继承过来的这部分.
⭐️super只是一个关键字,在代码层面上,能够达到易读的效果.
this代表当前对象的引用.
⭐️super是父类的引用这个说法是错误的,我们创建子类时并没有父类对象,怎么会有父类的引用呢?
Amimal.this,.name在子类中用这个方法来访问父类中的成员是错误的。
★实例内部类当中,才会包含外部类的this.
那么今天分享就到这里,谢谢大家!!!