=========继承=========
继承格式:public class zi extends fu{}
zi类可以继承fu类的非私有(private)属性,方法,构造方法。
当然zi可以使用fu的get/set方法。
当zi实例化(创建对象)后可以调用fu类的非私有(private)的属性,方法,构造方法。
==========super=========
首先我们知道this.可以访问本类的属性,一般用在set方法,而super和this相似,super.可以访问父类的属性。
比如:
//设置父类属性
public void setName(String name){
super.name = name;
}
//设置子类属性
public void setName(String name){
this.name = name;
}
不过还是建议直接在父类写set方法。
那么如何访问父类的方法呢?操作如下:
语法:super.方法();
这个语法只能在非static方法里存在。
而this.也只能在非static方法里存在。
首先在父类和子类创建一个同名的FU方法(无static)。
然后我们在zi类创建一个Dome方法(无static)。
下面是Dome的代码:
public void Dome(){
this.FU();
super.FU();
}
一个是调用zi类的FU方法。
一个是调用fu类的FU方法。
第三个super语法:super();
这种语法只在zi类的构造方法存在。
super();是用来调用fu类的构造方法。
不过就算你不写,它也会自动调用fu类的无参构造方法。
如果fu类没有无参构造方法,在zi类地无参构造方法就会报错。
所以fu类最好还是创建一个无参构造方法为好。
还有一种解决方案,就是在zi类的构造方法里手动写一个super(带参);
==========重写===========
重写还要认识一个修饰词:
@Override
它可以帮我们检查重写是否正确。
不过在IDEA中我们在zi类写fu类的方法名在按Enter就会自动帮我们重写。IDEA会自动帮我们用super.方法();帮我们调用。重写就想复制粘贴一样,@Override可以帮我们检查重新。