2012-03-15 8 views
0

これで、Javaを学び、これを使用しています:http://www.myflex.org/books/JavaKid8x11.pdfチュートリアル。私は現在37ページにあり、魚を乗り越えることはできません。私はコードを正確にコピーしたと確信していますが、明らかに私は何か間違っているので、私のコードはここにあります。ここ はクラスペットです:Javaでメソッドをオーバーライドする

public class Fish extends Pet { 

    public String say(String something) { 
     return "Don't you know that fish do not talk?"; 
    } 

    int currentDepth=0; 

    public void sleep() { 
     System.out.println("I need to rest"); 
    } 

    public int dive(int howDeep) { 
     currentDepth=currentDepth + howDeep; 
     System.out.println("Diving for " + howDeep + " feet"); 
     System.out.println("I'm at " + currentDepth + " feet below sea level"); 
     return currentDepth; 
    } 
} 

魚のクラスがFishMasterで使用されています:

public class FishMaster { 

    public static void main(String[] args) { 

     Fish myLittleFish = new Fish(); 
     myLittleFish.say("Hello!"); 
     myLittleFish.dive(2); 
     myLittleFish.dive(3); 

     myLittleFish.sleep(); 
    } 
} 

が問題となる魚のクラスのスーパークラスである

public class Pet { 
    int age; 
    float weight; 
    float height; 
    String color; 

    public void sleep() { 
     System.out.println(
       "Good night, see you tommorow"); 
     } 

    public void eat() { 
     System.out.println(
     "I'm so hungry...let me have a snack like nachos!"); 
    } 

    public String say(String aWord) { 
     String petResponse = "OK!! OK!! " +aWord; 
      return petResponse; 
    } 
} 

私が魚クラスでsayメソッドを乗り越そうとしているとき。乗り越え過ぎても睡眠法はうまくいきましたが、sayメソッドはもう何もしません。私はそれを実行し、それは印刷されません "あなたは魚が話すことができないのは分かりませんか?"その本が言っているように。間違ったことをしているのか、何も印刷しないというだけの機能です。フィードバックは、感謝、ありがとうございます。

答えて

3

このメソッドは文字列を返し、印刷しません。試してみてください:

System.out.println(myLittleFish.say("Hello!")); 

明確にする:

// we assign the string returned from the method to a variable 
String sentence = myLittleFish.say("Hello!"); 
// we print the variable to screen 
System.out.println(sentence); 
+0

私はチュートリアルに従ってこのプログラムをコーディングしていますか? –

+0

私はあなたが取るチュートリアルがわからない、わからない。 – MByD

+0

Soory、私は "this"にリンクを含めるつもりでしたが、ここにあります:http://www.myflex.org/books/JavaKid8x11.pdf –

1

あなたのすべてのsay()方法はありませんStringを返すです。呼び出し元の関数(FishMaster.main())は、このStringで何も行いません。

System.out.println(myLittleFish.say("Hello!")); 
0

あなたはそれをシステムにプリントアウトしていないのを忘れてしまいました。値は単に出力されずに返されます。

関連する問題