プロが教えるわが家の防犯対策術!

JAVAについて質問よろしくお願いします。

abstract抽象クラスとインターフェースについて下記理解なのですが、超かんたんな一例など欲しいのですが何かないでしょうか。たとえば
package round1.chapter1;

public class Helloworld {
public static void main(String[] args) {
System.out.println("こんにちは!");
}
}

というような一文です。

~私の理解~
アブストラクトとは、違ったクラス内で同一メソッドがある場合は親クラスに置き、違ったメソッドがある場合は抽象クラスとして親クラスに置いて、実装はサブクラスに任せるという形式で使われる言葉

インターフェースとは、機能だけを仕様書として書いておき、定義されたとおりのメソッドを実装しないといけないという呼び出し方の統一を図る際に使われるメソッド置き場
~~~~~

このふたつについてものすごく簡単な使用例を頂きたいです。
よろしくお願いいたします。

A 回答 (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;
 }
}

この回答への補足

すばらしすぎます。時間かかりますがよく読んでからお礼を書かせてください。
本当に感謝です。

補足日時:2014/10/18 18:32
    • good
    • 0
この回答へのお礼

お礼遅れてしまい申し訳ありませんでした。本当にありがとうございました。またもし質問することがあるかもしれませんがそのときはよろしくお願いいたします。一点お聞きしたいのですが、そういったインターフェースやアブストラクトについて良書といったらTaiyonoshizukuさんはどんな書籍になりますでしょうか。差し支えなければお教え下さい。よろしくお願いいたします。

お礼日時:2014/10/24 21:20

書籍に関してはごめん、いい回答を持っていないんだ。


プログラム関係の本、持ってないんだ。
    • good
    • 0
この回答へのお礼

回答頂き本当にありがとうございました。先にありました回答をベストとして選ばさせて頂きます。ありがとうございました。

お礼日時:2014/10/28 23:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!