child class 可以创建抽象类型 super class 的 object 吗?
Can a child class creates object of type super class that is abstract?
我不确定我问的是否正确,但我在作业中得到了
ClassA是抽象的
ClassB 扩展 Class A
然后在 ClassB 的主要方法中我们有:
ClassA obj = new ClassB();
这里发生了什么,这样做的目的是什么?
是的,这完全有可能。所以摘要 class 就像一份合同。您将仅在摘要 class 中提供方法声明。 child class 有责任提供定义。因此 Class B 将负责定义 Class A 声明的任何方法的行为。如果我们想在 child classes 中强制执行默认行为,我们会这样做。阅读文档以获取更多详细信息和示例。
您永远无法创建来自抽象的对象 class。曾经。时期。
这里你的变量被分配给对象是抽象类型,但变量所指的对象本身不是也永远不可能是。引用和引用变量之间的区别是一个关键概念,必须了解它才能进步,但是一旦你理解了它,你就会去 "a-ha!".
这确实是多态性的主要部分。首先,是的,您编写的代码正是它的发生方式。我认为理解它的最简单方法(无论如何对我而言)是查看游戏的行为方式。
超级class项目是抽象的
在这个项目 class 中,我们有项目的 textures/ids/names 等变量。
然后我们将 child class 的项目设置为超 class,这些将是其更具体区域中的所有项目,(例如,武器、货币、食品等)。当然,在他们的 classes 中,他们将拥有有助于让他们脱颖而出的细节。
所以终于。为什么?好吧,如果您必须加载所有这些项目,那么单独指定所有不同的 child 将是一件非常痛苦的事情。例如,您可以将所有 child class 放入数组、列表或映射中。所有这些都将在项目 class 名称下。这样一来,superclass的所有child classes都可以放到一个容器里,方便一次性全部操作。
我不确定我问的是否正确,但我在作业中得到了
ClassA是抽象的
ClassB 扩展 Class A
然后在 ClassB 的主要方法中我们有:
ClassA obj = new ClassB();
这里发生了什么,这样做的目的是什么?
是的,这完全有可能。所以摘要 class 就像一份合同。您将仅在摘要 class 中提供方法声明。 child class 有责任提供定义。因此 Class B 将负责定义 Class A 声明的任何方法的行为。如果我们想在 child classes 中强制执行默认行为,我们会这样做。阅读文档以获取更多详细信息和示例。
您永远无法创建来自抽象的对象 class。曾经。时期。
这里你的变量被分配给对象是抽象类型,但变量所指的对象本身不是也永远不可能是。引用和引用变量之间的区别是一个关键概念,必须了解它才能进步,但是一旦你理解了它,你就会去 "a-ha!".
这确实是多态性的主要部分。首先,是的,您编写的代码正是它的发生方式。我认为理解它的最简单方法(无论如何对我而言)是查看游戏的行为方式。
超级class项目是抽象的 在这个项目 class 中,我们有项目的 textures/ids/names 等变量。
然后我们将 child class 的项目设置为超 class,这些将是其更具体区域中的所有项目,(例如,武器、货币、食品等)。当然,在他们的 classes 中,他们将拥有有助于让他们脱颖而出的细节。
所以终于。为什么?好吧,如果您必须加载所有这些项目,那么单独指定所有不同的 child 将是一件非常痛苦的事情。例如,您可以将所有 child class 放入数组、列表或映射中。所有这些都将在项目 class 名称下。这样一来,superclass的所有child classes都可以放到一个容器里,方便一次性全部操作。