java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
我有抽象的父類Animal:
public abstract class Animal
{
public abstract T copyAnimal(T animal);
}
然后我想創建一個子類Duck但是要覆蓋copyAnimal我想使用Duck作為參數,這樣:
public class Duck extends Animal
{
@Override
public Duck copyAnimal(Duck duck)
{
return copyOfDuck;
}
}
這當然給了我一個編譯器錯誤,說明該方法沒有被覆蓋.這就是說我怎么能調整這個代碼,這樣我就不必將Animal傳遞給copyAnimal()方法來保存轉換等等,因為它看起來很丑陋,需要額外的運行時檢查.或者甚至可能嗎?如果沒有,那么最優雅的解決方案是什么?
解決方法:
public abstract class Animal>
{
public abstract A copyAnimal(A animal);
}
然后:
public class Duck extends Animal
請注意,您不能將其限制為“自我”類型(例如,它可能是Duck extends Animal< Pig>);你只需要聲明你想要聲明的類.
標簽:java,polymorphism
來源: https://codeday.me/bug/20190731/1587670.html
總結
以上是生活随笔為你收集整理的java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 柯基犬多少钱啊?
- 下一篇: 在java读字符串入文件_如何在java