可以为基类引用变量分配基类对象或派生类对象的地址。
真假?
谁能给我看看这意味着什么的例子?我是Java的新手,正在尝试了解Java的特定语言术语。谢谢。
我认为以下示例就是我编写的代码:
public class B extends A { A a = new A(); A ab = new B(); } class A { }
我认为,由于两个参考变量都是有效的语法(在Eclipse中),因此答案是正确的。
可以为基类引用变量分配基类对象或派生类对象的地址。 真假?
正确,因为所有派生类对象都是基类的实例,但并非相反。
首先,您需要知道什么是基类和派生类。
基类也称为父类或超类,是被另一个扩展的类。一个简单的例子是Animal class。
Animal class
子类是其父类的扩展。例如,Lion class。
Lion class
我们知道所有的狮子都是动物。但是并不是所有的动物本质上都是狮子。子类只是超类的子集。
因此,当我们有一个基类引用时,可以将派生类对象分配给它。
例:
class Animal{ } class Lion extends Animal{ } Animal someAnimal = new Lion(); //because all lions are animals
但是,事实并非如此。因此不可能,并且在Java中是不允许的:
Lion lion = new Animal(); //not allowed in Java.