多态

来源:互联网 发布:u盘启动ubuntu系统 编辑:程序博客网 时间:2024/06/07 02:36

理解:同一个对象引用在不同的地方代表不同的实现;
1多态的前提:
            A:有继承或者实现关系。
           B:有方法重写。
            C:有父类或者父接口引用指向子类对象。

2分类:
具体类多态

class Son extends Father{}Father father=new Son()

抽象类多态

                abstract class Father {}                class Son extends Father {}                Father father=new Son()

接口多态

                interface Father {}                class Son implements Father {}                Father father=new Son()

3多态中的成员访问特点
A:成员变量
            编译看左边,运行看左边
B:构造方法
           子类的构造都会默认访问父类构造
C:成员方法
           编译看左边,运行看右边
D:静态方法
           编译看左边,运行看左边

4多态的内存执行顺序
Father father=new Son()
1:在栈中为Father father分配内存空间
2:在堆中为new Son()分配内存空间
3:在堆中对Father 成员变量初始化,并获取方法区Father 成员方法的内存地址
4:在堆中对Son成员变量初始化,并获取方法区Son成员方法的内存地址
5:最后将new son()的内存地址给对象引用father

0 0
原创粉丝点击