一尘不染

Java基类参考变量

java

可以为基类引用变量分配基类对象或派生类对象的地址。

真假?

谁能给我看看这意味着什么的例子?我是Java的新手,正在尝试了解Java的特定语言术语。谢谢。

我认为以下示例就是我编写的代码:

public class B extends A {
    A a = new A();
    A ab = new B();
}

class A {

}

我认为,由于两个参考变量都是有效的语法(在Eclipse中),因此答案是正确的。


阅读 226

收藏
2020-12-03

共1个答案

一尘不染

可以为基类引用变量分配基类对象或派生类对象的地址。

真假?

正确,因为所有派生类对象都是基类的实例,但并非相反。

谁能给我看看这意味着什么的例子?我是Java的新手,正在尝试了解Java的特定语言术语。谢谢。

首先,您需要知道什么是基类和派生类。

基类也称为父类或超类,是被另一个扩展的类。一个简单的例子是Animal 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.
2020-12-03