如果我使用的是一個名爲「Dog」的類,它擴展了一個名爲「Animal」的類,有沒有辦法讓構造函數使用一個帶有Animal對象的參數,然後會要求我不要使用超級關鍵字來存儲Animal對象所需的信息?謝謝。Java繼承/構造函數
0
A
回答
0
不,因爲您想複製原始Animal
。這是因爲Dog
是Animal
,您不能傳入另一個Animal
並將其作爲新對象的「父」。
你應該這樣做的方式是在你的父類(動物)中創建一個複製構造函數,該構造函數接受相同類型的對象。
public Animal(Animal other) {
this.field1 = other.field1;
this.field2 = other.field2;
...
}
然後在您的Dog
類,你可以這樣做:
public Dog(Dog other) {
super(other);
this.breed = other.breed;
...
}
0
不能自動,沒有。
現在Animal
本身可能有(用戶創建)「拷貝構造函數」風格的構造函數的Animal
實例,並從中複製領域,你可以在Animal
對象傳遞給此構造函數做你想做的。
0
如果我使用的是所謂的 「狗」 類
class Dog {
}
和它擴展了一個名爲 「動物」 類
class Animal {
}
class Dog extends Animal {
}
是有方式有建設者
class Dog extends Animal {
Dog() {
}
}
時使用的參數是需要一個Animal對象
class Dog extends Animal {
Dog(Animal otherAnimal) {
}
}
,然後要求我不要用
super
關鍵字
↑↑↑↑沒有使用super
關鍵字以上代碼↑↑↑↑
要存儲一個Animal對象所需的信息嗎?
class Dog extends Animal {
Animal otherAnimal;
Dog(Animal otherAnimal) {
this.otherAnimal = otherAnimal;
}
}
信息存儲,仍然沒有使用super
關鍵字。
相關問題
- 1. Java繼承 - 構造函數
- 2. Java構造函數繼承?
- 3. 在java中調用繼承構造函數的構造函數
- 4. Java Rest構造函數繼承
- 5. Java的繼承與構造函數
- 6. Java - 繼承與構造函數錯誤
- 7. Java:繼承構造函數到子類
- 8. Java複製構造函數和繼承
- 9. 私有構造函數和繼承(Java)
- 10. 繼承非構造函數
- 11. 構造函數和繼承
- 12. 構造函數和繼承?
- 13. 構造函數和繼承
- 14. 構造函數繼承
- 15. C#繼承構造函數
- 16. 刪除複製構造函數break繼承構造函數
- 17. 繼承構造函數和默認構造函數
- 18. 的Java:繼承構造
- 19. 可變參數構造函數繼承
- 20. 構造函數參數和繼承
- 21. CoffeeScript,原型繼承和構造函數
- 22. C中的繼承和構造函數#
- 23. 實例化繼承構造函數
- 24. 構造函數繼承自我python
- 25. C++只繼承公共構造函數
- 26. C#基礎構造函數繼承
- 27. 移動構造函數和繼承
- 28. 構造函數繼承問題
- 29. 靜態構造函數和繼承
- 30. 繼承類和構造函數
感謝您的信息! – Cresyls
很高興我幫助了!如果這是答案,隨時標記爲:) – ACVM