- ベストアンサー
アブストラクトとインターフェースの簡単な使用例
- アブストラクトクラスとインターフェースは、オブジェクト指向プログラミングにおいて重要な要素です。
- アブストラクトクラスは、共通のメソッドやフィールドを持つクラスの共通部分を抽象化して表現します。
- インターフェースは、クラスがどのような振る舞いを持っているかを定義するための仕様書です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
伝わるかな。もっと良い例はあると思うけどねw インデントは全角スペースだからコピペするとエラーになるからね。 実行クラス public class TestMain { public static void main(String[] args) { // リンゴを切るよ! Ringo ringo = new Ringo(); ringo.cut(); // みかんを切るよ! Banana banana = new Banana(); banana.cut(); } } これabstractクラス。果物を食べやすくするよ。 public abstract class AKudamono implements IKudamono { public AKudamono() { // 呼ばれたら共通の処理を呼ぶんだ。洗う! this.arau(); } /** * 果物を出荷する前に行う共通の処理 * */ public void arau() { System.out.println ( this.getNamae() + "を切る前に洗う" ); } /** * それぞれの果物で違うきり方をする処理をサブクラスに定義 * */ abstract public void cut(); } これがinterface。果物の共通属性。名前、形、重さ public interface IKudamono { public String getNamae(); public String getKatachi(); public int getOmosa(); } これがりんごクラス。AKudamonoクラスを継承しているのでabstractのcut()とinterfaceのメソッドをそれぞれ実装 public class Ringo extends AKudamono { public Ringo() { } public void cut() { System.out.println("8等分にカットしたあと皮をむく"); } public String getNamae() { return "りんご"; } public String getKatachi() { return "まるい"; } public int getOmosa() { return 200; } } 同じくバナナクラス。 public class Banana extends AKudamono { public Banana() { } public void cut() { System.out.println("の皮をむいて10等分にカットする処理"); } public String getNamae() { return "ばなな"; } public String getKatachi() { return "ほそながい"; } public int getOmosa() { return 100; } }
その他の回答 (1)
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
書籍に関してはごめん、いい回答を持っていないんだ。 プログラム関係の本、持ってないんだ。
お礼
回答頂き本当にありがとうございました。先にありました回答をベストとして選ばさせて頂きます。ありがとうございました。
お礼
お礼遅れてしまい申し訳ありませんでした。本当にありがとうございました。またもし質問することがあるかもしれませんがそのときはよろしくお願いいたします。一点お聞きしたいのですが、そういったインターフェースやアブストラクトについて良書といったらTaiyonoshizukuさんはどんな書籍になりますでしょうか。差し支えなければお教え下さい。よろしくお願いいたします。
補足
すばらしすぎます。時間かかりますがよく読んでからお礼を書かせてください。 本当に感謝です。