2012-03-15 2 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; 
    } 
} 

내가 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

Soory, 나는 "this"에 링크를 포함 시키려했다. 여기에있다 : http://www.myflex.org/books/JavaKid8x11.pdf –

1

귀하의 모든 say() 방법은 문자열을 반환 할 것입니다 않습니다. 호출 함수 (FishMaster.main())는이 String에 대해 아무 것도 처리하지 않습니다.

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

당신은 그것을 밖으로 인쇄하는 것을 잊었을 것입니다. 값은 단지 인쇄되지 않은 채 반환됩니다.

관련 문제