Java继承构造函数

时间:2020-11-09 13:39:18

标签: java

请帮助,我遇到这种问题。

我的班级考试

    private boolean status;
    private double price;
    String message = "Good luck";

我的考试班的建设者

public Exam(String period, String level) {
    
}

public void setPrice(double p) {
    this.price = p;
}

public double getPrice() {
    return price;
}

public void setFinished(boolean f) {
    this.status = f;
}

public boolean isFinished() {
    return status;
}


class Midterm extends Exam {
        public Midterm(String period, String level) {
        super(period, level);
        System.out.println("Exam has started");
    }
}

扩展测验的班级测验

    public Quiz(String period, String level) {
        super(period, level);
    }

    
class Essay extends Quiz {

    public Essay(String period, String level) {
        super(period, level);
    }
    
}
    
}


public static void main(String[] args) {
    Exam e = new Exam("wew", "wew");
    
    
    System.out.println(e);
}
}

我在这里得到的是这样的asd.Exam@36baf30c,我想要的是显示我分配的字符串

1 个答案:

答案 0 :(得分:0)

调用System.out.println方法时,它将调用要打印的对象的toString方法。 toString方法的默认值为:

getClass().getName() + '@' + Integer.toHexString(hashCode())

因此,如果要为对象打印一些自定义值,则需要按如下所示覆盖该对象中的toString

@Override
public String toString() {
    return "Exam: " + period + " : "+ level;
}