java面向对象类的设计 继承

泄露秘密 提交于 2020-03-03 14:34:06

面向对象类的设计继承

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("我的祈愿能帮舰长变成欧洲人吗?");
    }
}

运行结果

我的祈愿能帮舰长变成欧洲人吗?
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!