java - 如何将基类对象分配给父类引用?

标签 java inheritance parent-child

假设我们有一个基类和父类,分别名为 ChildParent

Parent b = new Child();
System.out.println(b instanceof Child);// prints true.
System.out.println(b instanceof Parent);//prints true.

那么为什么这两个陈述的结果都是正确的?

最佳答案

如果类 B 扩展类 A,则 B 是 A。例如,Circle 是 Shape。

能够像引用父类一样引用实例是面向对象语言的要求之一。

参见Liskov substitution principle

关于java - 如何将基类对象分配给父类引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221947/

相关文章:

javascript - 普通JS : Reveal only the next element at the same parent group

java - 为 grails 应用程序指定 java -D 选项

c++ - 将使用基类 ctor 创建的对象转换为派生类

java - 是否有 .contains 就像 c# 上的 java 函数一样?

c++ - 模板类派生自非模板基类 : No access to base class variables?

java - 如何在 Android 中的 Activity 之间访问相同的变量

cocoa - NSArrayController 和 Core Data 对象的异构数组

ruby-on-rails - rails : How to get a model to "inherit" attributes from a parent model?

java - jsp:useBean 调用类中的特定方法

java - 在 Tycho 项目中为非 OSGi JUnit 测试添加仅测试依赖项