多态的概念,前提,注意事项以及访问成员的特点 day09


    多态:某一个事物在不同状态下的多种状态
    举例:
        1、学生是人,老师是人,医生是人。
        2、汽态的水是水,固态的水是水,液态的水是水

    在java中要实现多态的话,需要有3个前提:
        1、必须要有继承关系
        2、要有方法的重写(思考可否不重写?)
            不是必须要重写的,重写可以体现子类的专属特征。
        3、要有父类的引用指向子类对象

    使用多态第三个前提的注意事项:
        1、必须是继承关系的类,才可以写成父类的引用指向子类对象
        2、左边的父类,可以不必是子类对象的直接父类,也可以是父类的父类


    多态下,访问成员的特点:
        1、成员变量
            编译看左,运行看左。
        2、成员方法
            编译看左,运行看右。(如果子类没有重写则运行从父类继承过来的方法)
            思考:如何在多态的状态下,使用子类中特有的方法呢?
        3、静态的成员方法
            编译看左,运行看左。
成员方法执行顺序案例
class A {
    public void show() {
        show2();
    }

    public void show2() {
        System.out.println("我");
    }
}

class B extends A {
    //子类继承自父类中的show方法,相当于子类也有一份show方法
//    public void show() {
//        show2();
//    }

    public void show2() {
        System.out.println("爱");
    }
}

class C extends B {
    public void show() {
        //相当于将父类中show方法中的方法体逻辑在子类中执行
        super.show(); //  show2();
    }

    public void show2() {
        System.out.println("你");
    }
}

public class DuoTaiDemo4 {
    public static void main(String[] args) {
        A a = new B();
        a.show(); // 爱

        B b = new C();
        b.show(); // 你
    }
}
posted @ 2024-08-05 19:36  ていせい  阅读(4)  评论(0编辑  收藏  举报