行中发生了什么:Sup supref;
这是一种变量吗?请简要说明需要。
参考是关键字吗?我从来没有见过这个,它只是出现在我的教科书中没有解释。非常感谢。
整个代码:
class Sup {
void who() {
System.out.println("who() in Sup");
}
}
class Sub1 extends Sup {
void who() {
System.out.println("who() in Sub1");
}
}
class Sub2 extends Sup {
void who() {
System.out.println("who() in Sub2");
}
}
public class DynDispDemo {
public static void main(String[] args) {
Sup superOb = new Sup();
Sub1 subOb1 = new Sub1();
Sub2 subOb2 = new Sub2();
Sup supref;
supref = superOb;
supref.who();
supref = subOb1;
supref.who();
supref = subOb2;
supref.who();
}
}
Sup supref;
表示supref
是 Sup
类型的变量。 supref
可以引用类 Sup
的任何对象或其任何子类。
Sup supref;
这一行声明了一个变量,其名称是supref
,类型为Sup
,没有初始化(它基本上不引用任何内容)。
这个变量能够保存对类型Sup
的对象或其任何子类的引用,但在使用它之前不能用于做任何事情,直到它被new
初始化,或者通过一些其他赋值操作,如supref = superOb;
,它分配由superOb
指向的引用,这也是Sup
类型
示例中的以下代码说明了多态性,因为要从不同类型的对象进行supref
并对这些对象调用 who()
方法进行赋值。
您可以使用单个变量来保存对某个超类型的引用,而不关心子类类型,并使用定义的接口来获取正确的功能。
> supref 是 Sup 类型的变量。它在 Java 中也称为引用变量。由于"Sup"是Sub1和Sub2的父类,这意味着Sub1和Sub2也是Sup类型。这意味着,任何 Sup 类型的引用变量都可用于引用 Sup 类型的对象,在本例中,该对象用于保存 Sub1 和 Sub2 的引用。