extends継承とimplements実装の違いについて質問です
コード public class Player{ int winCount; Random rnd = new Random(); public int getPoint(){ int ran = rnd.nextInt(3); //0~2ランダム return ran; } public void addWinCount(){ winCount++; } }
コード public class Player1 extends Player{ @Override public int getPoint(){ int ran = 0; return ran; } }
継承の場合
上のようなPlayerクラスを継承したPlayer1クラスはgetPointメソッドは上書きされるがaddWinCountメソッドはPlayerクラスと同じように使える
実装の場合
下のようなTacticsクラスを実装したRandomTacticsクラスはreadTacticsメソッドが上書き?されている
私の解釈が間違っているからかもしれませんが、どちらも上書きするだけでそんなに大差が内容に感じます。
継承はPlayerクラスがベースにあって継承することで上書きや処理を追加できるのはわかります。
実装の方はただ上書きするだけのように思います。
いまいちよくわからないのでimplementsの使うべきタイミングやメリットを教えていただきたいです。
まとまりのない文章ですがよろしくお願いします。
コード public interface Tactics{ public int readTactics(); }
コード public class RandomTactics implements Tactics{ int winCount; Random rnd = new Random(); @Override public int readTactics(){ int ran = rnd.nextInt(3); //0~2ランダム return ran; } public void addWinCount(){ winCount++; } }
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/25 07:26