public abstract class Car {
// This class includes common properties for a car, in this way we wont have to change if we need to add a new car brand
public String name;
public String colour;
public int model;
public String feature;
public String getFeature() {
return feature;
}
public void setFeature(String feature) {
this.feature = feature;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColour() {
return colour;
}
public void setColour(String colour) {
this.colour = colour;
}
public int getModel() {
return model;
}
public void setModel(int model) {
this.model = model;
}
}
测试.java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
CarFactory carfactory = new CarFactory();
System.out.println("Hello, please enter your car brand \n BMW \n MERCEDE \n OPEL");
Car usercar = null;
String usertext = input.nextLine();
usercar = carfactory.makeCar(usertext);
System.out.println("enter colour of your car");
usertext = input.nextLine();
usercar.setColour(usertext);
System.out.println("enter model of your car");
usertext =input.nextLine();
usercar.setModel(Integer.parseInt(usertext));
System.out.println("Your Car Information;\n "+ usercar.getName()+" \n Colour:" + usercar.getColour() + "\n Model "+ usercar.getModel()+ "\n Your car's plus point is " + usercar.getFeature());
}
问题是,如果我想用toString方法打印汽车信息,该怎么做?我在汽车类中写了一个,但它不起作用,功能是从汽车自己的类分配的..
这是我的 toString 方法
public String toString(){
return "Your Car Information;\n "+ getName()+" \n Colour:" + getColour() + "\n Model "+getModel()+ "\n Your car's plus point is " +getFeature();
}
最佳答案
首先,您必须重写 java.lang.Object
的 toString()
方法,如下所示:
class Car {
...
@Override
public String toString() {
return "Your Car Information;\n " + getName() + " \n Colour:" +
getColour() + "\n Model " + getModel() + "\n Your car's plus point is " +
getFeature();
}
}
其次,你可以这样使用它:
public static void main(String[] args) {
// 'CarClass' is a no-abstract class, who extends the 'Car' class
Car car = new CarClass();
// the first way
String information = car.toString();
System.out.println(information);
// the second way
System.out.println(car);
}
关于java - 为什么 toString 方法被覆盖后不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897066/