[英]Java Inheritance - Base class methods being overriding by derived class when using base variable for derived object
[英]Java Base b = new Derived(); inheritance questions
使用以下命令创建新实例时会发生什么:
Base b = new Derived();
我无法理解这背后的机制。
基本上,从那时起,编译器会看到一个Base
实例,在运行时,实例的类型为Derived
。
在更广泛的解释中, Base
类型可能是一个接口,因此您可以通过契约知道什么方法具有什么以及它具有什么样的Polymorphism
。 但是你从实现中抽象出来了。
对b
的引用是Base
类型。 但实施是Derived
。 这意味着您可以将其用作Base
但它将表现为Derived
。 执行b instanceof Derived
将为true,因为实现的类型为Derived
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.