サンプルプログラム(Sample104.java)

interface Animal{
  void eat();
  void move();
}
class rion implements Animal{
  public void eat(){

  System.out.println("ライオンが肉を食べています");
}

  public  void move(){

  System.out.println("ライオンが走っています");

  }
}
class Sample104{
    public static void main(String args[]){
   
   rion ri = new rion();
   
   ri.eat();
   ri.move();
     }
}

プログラムをコピーする場合すべて選択をクリックしてください。


Sponsored link

コンパイル・実行してみます。

抽象クラスと似ていますが異なります。
まず、ここではインタフェースにAnimalインタフェースを用意しています。
Animalインタフェースを実装しているのがrionクラスです。
rionクラスではAnimalインタフェースの抽象メソッドをオーバーライドしています。

では、次のプログラムを見ていきます。

サンプルプログラム(Sample104_1.java)

interface Animal{

  void eat();
  void move();
}
class rion implements Animal{

        void eat(){

  System.out.println("ライオンが肉を食べています");
}
         void move(){
  System.out.println("ライオンが走っています");

  }
}

class Sample104_1{
    public static void main(String args[]){

  rion ri = new rion();
   
   ri.eat();
   ri.move();
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。


Sponsored link

★☆★☆★☆ ナウでヤングなレンタルサーバー!ロリポップ! ☆★☆★☆★
月額105円〜容量最大30GB!WordpressやMovable Typeの簡単インストール付★


コンパイル・実行してみます。

実はこれはコンパイルエラーになります。
インタフェース内のメソッドは全て抽象メソッドにpublicが付けられることは話したと思います。
そうです。rionクラスではAnimalインタフェースのメソッドをオーバーライドしています。
オーバーライドのルールではアクセス範囲を弱くすることができませんでした。
したがってrionクラスでも必ずpublicにしなければいけないのです。

では次のプログラムは」どうでしょうか?

サンプルプログラム(Sample104_2.java)

interface Animal{
  void eat();
  void move();
}
class rion implements Animal{

       public void eat(){

  System.out.println("ライオンが肉を食べています");
}
     }

class Sample104_2{
    public static void main(String args[]){
  rion ri = new rion();
   
   ri.eat();
  
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。


Sponsored link

コンパイル・実行してみます。

実はコンパイルエラーになります。
それは、インタフェースを実装した場合そのインタフェースのメソッドをすべてオーバーライドしなければいけないからです。

つまりAnimalインタフェースにはeat()メソッドとmove()メソッドがあります。
しかしrionクラスにはeat()メソッドしかオーバーライドしていません。
したがってこのようなエラーが出ます。

エラーをなくすには以下のようにします。

サンプルプログラム(Sample104_3.java)

interface Animal{

  void eat();
  void move();
}
class rion implements Animal{

       public void eat(){

  System.out.println("ライオンが肉を食べています");
}
      public void move(){}
     }

class Sample104_3{
    public static void main(String args[]){

  rion ri = new rion();
   
   ri.eat();
  
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。


Sponsored link

【必須ソフト14種類がパック!】自宅でプロのWebデザイナーを目指す! デジハリ・オンラインスクール
資料請求が簡単にできる比較.com!資格スクール多数掲載


コンパイル・実行してみます。

最初に説明しましたがすべてのメソッドをオーバーライドしなければいけません。
したがってmove()メソッドもオーバーライドしています。(もちろん中は空です)

ページのトップへ戻る