public class NewClass
{
public static class superclass
{
static void print()
{
System.out.println("print in superclass.");
}
}
public static class subclass extends superclass
{
static void print()
{
System.out.println("print in subclass.");
}
}
public static void main(String[] args)
{
superclass A = new superclass();
superclass B = new subclass(); //This line?
A.print();
B.print();
}
}
我在学习来自geeksforgeeks的静态绑定时遇到了这段代码。我无法理解这一行代码:
superclass B = new subclass();
不确定这是如何工作的。基本上,我们是在创建一个超类对象并调用子类的构造函数吗?这对我来说没有太多意义,因为我总是看到并习惯于:A obj = new obj();
类型的对象创建。
new subclass()
创建的是子类的对象,并将其分配给类型为superclass
的变量,这意味着您只能使用该变量来调用在超类中声明的方法。 - Andreas