美文网首页
java问题(多态中编译看左边,运行看右边)

java问题(多态中编译看左边,运行看右边)

作者: luckee | 来源:发表于2019-01-03 13:57 被阅读0次

在多态中,子类对象向上提升为父类类型后,对于数据域和静态的,编译和运行都是父类的,但是方法却是编译看父类有没有,没有就不通过编译,运行则是执行子类的方法。为什么呢?

public class Test {
    public static void main(String[] args) {
        Parent p = new Child();
        System.out.println(p.name + "\t" + p.address);
        p.sayName();
    }
}

class Parent {
    public String name = "father";
    public static String address = "JiangXi";
    
    public void sayName() {
        System.out.println(name + "\t" + address);
    }
}

class Child extends Parent {
    public String name = "son";
    public static String address = "ZheJiang";
    
    public void sayName() {
        System.out.println(name + "\t" + address);
    }
}

执行结果为

father  JiangXi
son ZheJiang

相关文章

  • 2020-07-23(内存变化总回顾)

    1,多态问题 成员变量:编译看左边(父类),运行看左边(父类) 成员方法:编译看左边(父类),运行看右边(子类)。...

  • java问题(多态中编译看左边,运行看右边)

    在多态中,子类对象向上提升为父类类型后,对于数据域和静态的,编译和运行都是父类的,但是方法却是编译看父类有没有,没...

  • 速记口诀

    1.编译看左边,运行看右边: 编译看左边: 指编译的时候看左边,左边有没有这个方法(等号左) 运行看右边: 指运行...

  • java中 多态 父子类的调用顺序

    关于多态,可以有个结论,静态方法(fu.show())和成员变量看左边 成员方法 编译看左边 运行看右边,...

  • 多态成员访问特点

    Fu fu = new Zi(); 成员变量: 编译看左边,运行看右边 成员方法:编译看左边 ,运行看右边 构造方...

  • 2019-03-23

    多态 /* * 多态的成员特点 * 成员变量 编译时看左边 运行时看左边 成员变量没有重写 所以打印的就是父类的成...

  • 父类和子类之间方法调用的问题

    Father类 Son类 测试类 问题1:编译为什么报错? 原因:引用一句话编译看左边,运行看右边,编译的时候看F...

  • Java——多态的理解

    1.多态就是父类的引用指向子类的对象2.编译看左边,执行看右边 3.子类中定义了与父类中同名同参数的方法,在多态的...

  • NO.23 多态中的成员变量和静态(static)方法访问

    成员变量 编译看左边(父类),运行看左边(父类) 静态(static)方法 编译看左边(父类),运...

  • 多态的理解以及动态绑定机制

    关于多态:Father f=new Son();要记住的无非 静态变量和方法:编译和运行看左边(父类) 成员变...

网友评论

      本文标题:java问题(多态中编译看左边,运行看右边)

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