2012-03-15 3 views
0

Итак, я просто изучаю java и использую это: http://www.myflex.org/books/JavaKid8x11.pdf учебник. Я нахожусь на странице 37, и я не могу больше не ездить на рыбе. Я уверен, что я скопировал код точно, но, очевидно, я делаю что-то не так, вот мой код. Вот класс Pet:Переопределение метода в Java

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; 
    } 
} 

Это супер класс класса рыб:

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(); 
    } 
} 

Проблема в том когда я пытаюсь преодолеть метод say в классе Fish. В то время как над верхом метод сна работал нормально, метод 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

Сори, я хотел включить ссылку на «это», это здесь: http://www.myflex.org/books/JavaKid8x11.pdf –

1

Все ваш метод say() делает это возвращает String. Вызывающая функция (FishMaster.main()) ничего не делает с этой строкой. Я ожидаю, что вы хотите распечатать его с помощью:

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

Вы забыли распечатать его до системы. Значение возвращается только не напечатанным.

Смежные вопросы