gpt4 book ai didi

java - 实例化对象和子/父​​类的关系

转载 作者:行者123 更新时间:2023-11-29 03:29:46 36 4
gpt4 key购买 nike

所以,我想在这里理解一些概念。

1) 创建新对象的一般“语法”(如果您愿意的话)。例如,以下哪项是“正确的”(我知道实例化对象的方法不止一种):

//1) ChildClass obj = new ParentClass();

//2) ParentClass obj = new ChildClass();

我知道以下两个是“合法的”,但我无法理解在子/父类中实例化对象之间的区别

(我已经知道这两个没问题):

ChildClass obj = new ChildClass();
ParentClass obj = new ParentClass();

2) 基本上,我想问的是“哪个 ClassName 指的是对象从/在其上实例化的类(措辞?抱歉...),以及哪个 ClassName 对象属于吗?"

如果这真的没有意义,我深表歉意。我尽我所能。

(一些背景:我目前正在学习面向对象 Java 的第一“类(class)”)

最佳答案

如果 ChildClassParentClass 扩展,你可以这样做

ParentClass obj = new ChildClass();

反之则不然。

此声明的左侧是将声明的或静态类型 ParentClass 的名为 obj 的变量放入当前范围。右侧是为变量分配对动态类型 ChildClassnew 对象的引用。 ChildClass 对象正在被实例化并分配给类型为 ParentClass 的变量。

换句话说,对于变量 obj,为了让编译器满意,您只能访问在其声明类型上声明的方法,即。 父类。如果你想调用 ChildClass 方法,你需要转换它。

((ChildClass)obj).someChildClassMethod();

关于java - 实例化对象和子/父​​类的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863295/

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