例如:
ParentObj A = new ChildObj();
((ChildObj) A).childMethod();
我在面向对象编程中看到很多这样的实例,将 ChildObj 声明为 ChildObj A = new ChildObj()
会更容易吗?而不是使用父对象作为对象创建的启动器?
此示例对于任何面向对象编程有何用例?
A对象是这个声明中的ChildObj还是ParentObj?
是否有性能提升之类的,比如这样做,或者如果有的话,它是一个用例基础的东西?
在这里谢谢菜鸟。
最佳答案
这是我个人的观点,而且大多数情况下,这种声明没有用例,例如
ParentObj A = new ChildObj();
在下面的情况下,我们使用将子对象隐藏在父引用下
- 我们不知道对象是如何初始化的
- 我们不知道实际的子类详细信息
- 我们有同一个父类的多个子类,我们只想专注于重写的函数
- 我们受契约(Contract)约束,只使用履行契约(Contract)的功能(接口(interface)场景)
这些是一些用例。
关于java - 为什么在面向对象的编程中,要在变量中实例化对象的父类(super class)和子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41568711/