gpt4 book ai didi

java - 为什么在面向对象的编程中,要在变量中实例化对象的父类(super class)和子类?

转载 作者:行者123 更新时间:2023-12-02 03:07:23 25 4
gpt4 key购买 nike

例如: 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com