簡體   English   中英

祖父母類型的數組無法從孫子訪問元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM