[英]Array of type Grandparent can't access elements from Grandchild
我創建了一個具有祖父類型的數組,傳遞了該類型的孫對象,但我無法訪問子 class 中的元素。 這些不是我正在編碼的確切內容,它們只是示例。
這里是祖父母
public class Animal {
String name = "Animal";
}
這里是孩子 class
public class Bird extends Animal {
String name = "Bird";
}
這是孫子 class
public class RedBird extends Bird {
String name = "Red Bird";
}
我遇到的問題是這個
public class Room {
public static void main(String args[]) {
Animal[] anim = {new RedBird};
System.out.println(Animal[0].name);
}
}
程序會 output 出錯
Animal
有人知道我該如何解決這個問題嗎? 謝謝!
另一種看待這種情況的方法是,如果您不想要這種行為,請不要重新聲明該字段。 換句話說,添加String
聲明了一個新字段,而刪除則使類型系統重新使用您之前聲明的name
。
public class Animal {
String name = "Animal";
}
public class Bird extends Animal {
name = "Bird";
}
public class RedBird extends Bird {
name = "Red Bird";
}
這應該打印“Red Bird”,盡管我沒有測試它。
class Animal {
String name;
public Animal() {
name = "Animal";
}
}
class Bird extends Animal {
public Bird() {
name = "Bird";
}
}
class RedBird extends Bird {
public RedBird() {
name = "RedBird";
}
}
class Main {
public static void main(String[] args) {
Animal a = new RedBird();
System.out.println(a.name);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.