我写了这段代码
class Flower{
String name = "Flower";
void print(){System.out.println("Flower method");}
}
class Rose extends Flower{
String name = "Rose";
void print(){System.out.println("Rose method");}
}
....
//Another class in same default package
public static void main(String... args){
Flower f = new Rose();
f.print();
System.out.println(f.name);
}
我期望此代码的输出为:
Flower method
Flower
但它打印了
Rose method
Flower
我的经验法则是,当您使用这些“次要”类型之一作为参考时,只有它们的成员在对象中可见。您将需要强制转换才能访问其余部分。但似乎方法的处理方式不同?