面向对象类的设计继承
4.继承
重写方法:快捷键Ctrl o;
(1)关键字super
使用super子类可以调用子类之上所有父类的层级
(2)关键字this
使用this访问本类中的属性,若本类没有则从父类继承
(3)this和super调用构造器
this调用本类构造器必须放在构造器首行
super调用父类构造器必须放在构造器首行
public class b02 extends b01{
public void showInfo(){
super.showInfo();//此时super调用的是父类中的方法且必须放在第一行,但super上可有多个super
System.out.println("Its kiana time");
}

(4)instanceof
x instanceof A:检验x是否为类A的对象,返回值为Boolean型
_(5)object是所有类的父类
public class b01 {
public void test(Object o){//设置Objiect obj可以接收任何类作为其参数
System.out.println("舰长补给全保底,舰长副本零掉落");
}
public static void main(String[] args) {
b01 t=new b01();
b02 p=new b02();
t.test(p);
p.test(p);//因为object是所有类的基类,所以p可执行object方法,
}
可以用父类对象接收任何子类的实例
b01 s =new b02();
Object o =new b02();
(5.5)虚拟方法的调用
b01 s =new b02();
编译时s为b01类型,即s对象只能调用b01中的数据a,而不能调用b02的数据b;
而方法调用是在运行时确定的,所以调用的是b02类的方法。
public class b01 {
public void showT(){
System.out.println("舰长补给全保底");
}
int a;
public static void main(String[] args) {
b01 s =new b02();
s.a=14;//编译时s为b01类型,即s对象只能调用b01中的数据a,而不能调用b02的数据b;
s.showT();//而方法调用是在运行时确定的,所以调用的是b02类的方法。
}
public class b02 extends b01{
int b;
public void showT(){
System.out.println("我的祈愿能帮舰长变成欧洲人吗?");
}
}
运行结果
我的祈愿能帮舰长变成欧洲人吗?
来源:CSDN
作者:VioletEvgarden
链接:https://blog.csdn.net/VioletEvgarden/article/details/104574581