如何使用 class 名称的混合来创建子 class 扩展抽象父 class 的实例而不会出错?
How is creating an instance of a subclass extending an abstract parent class using a mix-up of both the class names error-free?
我认为这个问题需要一些说明。
所以,这是一个示例代码。
// Animal - abstract class (Parent class)
// Dog - inherited class (Sub class)
Animal puppy = new Dog(); // creating an instance.
所以我的问题是,如何在实例化对象时同时使用 class 名称是正确的?
对不起,如果这是一个愚蠢的问题。有人可以解释这个奇怪实例化的故障吗?
new Dog()
创建 Dog 的新实例并 returns 对该 Dog 的引用
Animal puppy
创建一个变量(一个命名的东西,可以保存对一个对象的引用),它能够引用任何对象,它是一个动物
=
将左边的变量初始化为右边的值。由于 Dog 是 Animal,对 Dog 的引用是 对 Animal 的引用,因此初始化是合法的。
我认为这个问题需要一些说明。
所以,这是一个示例代码。
// Animal - abstract class (Parent class)
// Dog - inherited class (Sub class)
Animal puppy = new Dog(); // creating an instance.
所以我的问题是,如何在实例化对象时同时使用 class 名称是正确的? 对不起,如果这是一个愚蠢的问题。有人可以解释这个奇怪实例化的故障吗?
new Dog()
创建 Dog 的新实例并 returns 对该 Dog 的引用
Animal puppy
创建一个变量(一个命名的东西,可以保存对一个对象的引用),它能够引用任何对象,它是一个动物
=
将左边的变量初始化为右边的值。由于 Dog 是 Animal,对 Dog 的引用是 对 Animal 的引用,因此初始化是合法的。