继承(super关键字注意点)
在图中通过分析后可以总结:super.xxx的作用是子类调用父类的属性和方法在这个过程中防止混淆可以用this.xxx来进行区分,前面的博客继承(本质、关系、Object)中有提到,继承之后子类继承了父类,就会拥有父类全部的方法。当application中实例化子类son后可以调用它父类即father(图中)所有的方法尽管原本son类中是没有的但他继承了father类。
这篇博客提出的super关键字最重要的原因:super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员变量或方法,这个时候要想访问父类的成员变量或方法只能通过super关键字来访问
当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员变量或方法
这句话特别的重要,这也是运用super关键字的重要原因!
super关键字注意点
super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行。
父类私有的private的方法无法被继承
package opp;
//子类继承了父类,就会拥有父类的全部方法
//son 子类
public class son extends father {
//此处有隐藏代码:调用了父类的无参构造 默认的调用不写也行
super();//调用了父类的构造器,必须要在子类构造第一行
private String name="mengzihan";
public void print(){
System.out.println("son");
}
package opp;
//在java中:所有的类都默认继承Object类
//father:父类
public class father {
protected String name="zoumaoji";
public void print(){
System.out.println("father");
}
}
总结:
supper注意点:
1.supper调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法
Vs this
代表的对象不同:
this:本身调用者这个对象
supper:只能在继承条件下使用
构造方法
this();本类的构造
supper():父类的构造