11.多态成员的特点

作者: 今天庹 | 来源:发表于2018-10-07 18:04 被阅读0次

    多态成员的特点

    • A:多态成员变量
      • 当子父类中出现同名的成员变量时,多态调用该变量时:
      • 编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。
      • 运行时期:也是调用引用型变量所属的类中的成员变量。
      • 简单记:编译和运行都参考等号的左边。编译运行看左边。
    • B:多态成员方法
      • 编译时期:参考引用变量所属的类,如果没有类中没有调用的方法,编译失败。
      • 运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。
      • 简而言之:编译看左边,运行看右边
    package com.itheima_01;
    /*
     *  多态的特点:
     *      成员变量:编译时看的是左边,运行时看的是左边
     *      成员方法:编译时看的是左边,运行时看的是右边
     *      静态方法:编译时看的是左边,运行时看的也是左边
     * 
     *  编译时看的都是左边,运行时成员方法看的是右边,其他(成员变量和静态的方法)看的都是左边
     */
    public class PoymorphicDemo2 {
        public static void main(String[] args) {
            Dad d = new Kid();
    //      System.out.println(d.num);//20  变量没有重写的概念
            
    //      d.method();//我是子类方法
            
            d.function();//我是父类静态方法     使用变量去调用静态方法,其实相当于用变量类型的类名去调用
        }
    }
    
    class Dad {
        int num = 20;
        
        public void method() {
            System.out.println("我是父类方法");
        }
        
        public static void function() {
            System.out.println("我是父类静态方法");
        }
    }
    
    class Kid extends Dad {
        int num = 10;
        
        public void method() {
            System.out.println("我是子类方法");
        }
        
        public static void function() {
            System.out.println("我是子类静态方法");
        }
    }
    

    相关文章

      网友评论

        本文标题:11.多态成员的特点

        本文链接:https://www.haomeiwen.com/subject/ojnlaftx.html