初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
サンプルプログラム(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()メソッドもオーバーライドしています。(もちろん中は空です)