這是abstract父類但是子類這樣寫編譯器報錯錯誤如上圖將子類聲明abstract后通過了,但是測試類中無法引用:Shape sha1 = new Rectangle();報錯。求高手指教。
2 回答
已采納

sunyx
TA貢獻12條經驗 獲得超0個贊
報錯很明顯,Rectangle沒有實現抽象類Shape中的方法,而是重載了_long 和square方法(對比shape和rectangle的兩個方法的參數列表完全不同)。所以編譯器告訴你,必須要實現抽象類中的方法。
把抽象方法改成如下
public?abstract?void?Shape{ ????public?abstract?void?_long(int?a,int?b); ????public?abstract?void?square(int?a,int?b); }

忘性最大的人
TA貢獻118條經驗 獲得超37個贊
首先,抽象類不能被實例化;再者你的抽象類方法明明是不含參數的,你把@Override注釋去掉之后相當于在子類中新建了一個方法,跟原先的抽象父類就沒什么關系了,相當于沒有用到抽象父類。(個人見解,恐有不足)
添加回答
舉報
0/150
提交
取消