2012-03-23 30 views
-5

2つの例があります。最初は真で2番目は間違っています。それはちょうど1つの点で異なる:AnimalクラスとMammalクラス。Java継承:@Overrideメソッドのエラー

public class Inheritance { 

    public static class Animal {   
     public void Scream() { 
      System.out.println("I'm an animal"); 
     }  
    } 

    public static class Mammal extends Animal{ 
        //no Scream method 
    } 

    public static class Tiger extends Mammal{ 
     public void Scream(){ 
      System.out.println("I'm a tiger"); 
     }  
    } 

    public static void main (String[] args){ 

     Animal tiger = new Tiger(); 
     tiger.Scream(); //True 
    } 
} 

第二の例:

public class Inheritance { 

    public static class Animal {   
       // no Scream method 
    } 

    public static class Mammal extends Animal{ 
     public void Scream(){ 
      System.out.println("I'm a mammal"); 
     }  
    } 

    public static class Tiger extends Mammal{ 
     public void Scream(){ 
      System.out.println("I'm a tiger"); 
     }  
    } 

    public static void main (String[] args){ 

     Animal tiger = new Tiger(); 
     tiger.Scream(); //false. Error 
    } 
} 

感謝:)

@:私が編集しました。私はタイプミスマッチしました。

+0

なぜあなたにエラーが表示されますか? – Stripies

+1

それは私のために、エラーなしで働いています...あなたが得ているエラーは何ですか? –

+0

あなたの例はどちらも、私のためにコンパイルされ、実行されました(そして "私は虎です")。あなたの問題は何ですか? –

答えて

4

2つのクラスをテストしましたが、どちらも機能しています。 動物の虎=新しい虎();第二の場合に 、動物()メソッドBTW

スクリームいないため:通常、メソッド名が;-)

0

両方のバージョンが完全な実行小文字で開始します。 どちらの場合も "tiger"と書かれています