toString方法不显示,但代码编译

时间:2018-01-17 12:50:49

标签: java oop tostring

Java代码编译但不显示toString方法。我需要在子类中调用它吗?或者是否有一种不同的方式让toString显示实例变量?

public class Animal { 
    //instance variables
    private int numberOfLegs; 
    private boolean sleep; 

    //Default Constructor
    public Animal() {
        numberOfLegs = 6;
        sleep = true;
    }

    // Constructor
    public Animal(int numberOfLegs, boolean sleep){
        this.numberOfLegs = numberOfLegs;
        this.sleep = sleep;
    }

    //toString method
    public String toString (int numberOfLegs, boolean sleep){
        return numberOfLegs + " legs, sleep: " + sleep;
    }
    //walk method
    void walk(){
        System.out.print("walking ");
    }
    public static void main(String[] args) {
        Animal animal1 = new Tiger();
        animal1.walk();
        animal1.toString(4, false);
    } //end main
}// end animalclass

class Tiger extends Animal {
    void walk(){
        super.walk();
        System.out.println("a Tiger");
    }
    public Tiger(){
        super();
    }
} //end Tiger class

1 个答案:

答案 0 :(得分:0)

toString() 返回一个String。它不执行任何显示逻辑(与您打印事物并且不返回任何内容的walk()方法不同)。

您需要使用System.out.println()或其他方式显示它。

toString()方法也不应该采用参数。你已经知道动物有多少腿了,所以参数都没用。