我有一个抽象类,割草机,覆盖toString()方法。草坪拖拉机类扩展割草机。它覆盖了toString()方法并将super.toString()作为方法的第一行。然后我有一个商业类扩展LawnTractor并覆盖toString(),并在其第一行中调用super.toString()。 实例化一个Commercial对象(声明为Mower对象)并调用它的toString()我希望它打印来自割草机和草坪拖拉机的两个属性,然后它是自己的属性。相反,它只打印来自割草机的属性,然后它自己的属性。我如何调用或重写商业中的toString()方法,以便它调用其父(LawnTractor)toString()而不仅仅是超级类(割草机)。如何从父类调用重写的方法而不是超类?
public abstract class Mower {
private String manufacturer;
private int year;
private String serialNumber;
public String tostring(){
String temp = "Manufacturer: " + getManufacturer() + "\nYear: " + getYear() + "\nSerial Number:" + getSerialNumber() + "\n";
return temp;
}
}
public class LawnTractor extends Mower{
private Engine engine = new Engine();
private String model;
private double deckWidth;
public LawnTractor(){
super();
}
public String toString(){
String temp = super.tostring() + "Engine:\n" + getEngine().toString() + "\nModel: " + getModel() + "\nDeck Width: " + getDeckWidth() + "\n";
return temp;
}
public class CommercialMower extends LawnTractor {
private double operatingHours;
private boolean zeroTurnRadius;
public CommercialMower(){
super();
}
public String toString(){
String temp = super.toString() + "Operating Hours: " + getOperatingHours() + "\nZero Turn Radius: " + isZeroTurnRadius() + "\n";
return temp;
}
请在您的描述之外添加代码片段 – Hristo
所以我发现在NetBeans中,我需要通过在方法菜单打开时查看它的javaDoc来指定要调用哪个super.toString()。但是当我将我的代码交给我的教授时,这种选择是否会转移?有没有办法保证我的决定? – Jordyn
请告诉我们您的代码。 –