【发布时间】:2017-02-02 19:47:57
【问题描述】:
我一直在尝试解决这个问题,我已经搜索了各种问题,但我认为我没有更接近。
我有一个超类 Vehicle,它提供了车辆的各种细节。然后我就有了继承自 Vehicle 的 Car 类。
我正在尝试打印 Car 类中的 toString,它覆盖了 Vehicle 类。
基本上我想打印出每辆车的信息。
这是我的主要内容
public static void main(String []args)
{
Car Ford = new Car(Red, 4, true);
//Ford = Ford.; Tried various things here to no avail, kept getting nullfalse in output
Car Honda = new Car(Blue, 4, false);
System.out.println(Ford.vehicleDetails);
System.out.println("Honda");
}
}
这是我的车辆类
public class Vehicle
{
// Variables
private String vehicleColour;
private int numberOfWheels;
String vehicleDetails;
// Constructor
public Vehicle(String vehicleColour, int numberOfWheels)
{
}
// Getters
public String getVehicleColour()
{
return vehicleColour;
}
public int getNumberOfWheels()
{
return numberOfWheels;
}
// Setters
public void setVehicleColour(String vehicleColour)
{
this.vehicleColour = vehicleColour;
}
public void setNumberOfWheels(int numberOfWheels)
{
this.numberOfWheels = numberOfWheels;
}
// Constructor
public Vehicle ()
{
}
// toString method super
public String toString() {
String vehicleDetails = (getVehicleColour() + "" + getNumberOfWheels());
return vehicleDetails;
}
}
这是我的汽车课
public class Car extends Vehicle
{
// Variables
private boolean convertible;
Car vehicleDetails;
// Getter
public boolean getConvertible()
{
return convertible;
}
// Setter
public void setConvertible(boolean convertible)
{
this.convertible = convertible;
}
// Constructor
public Car(String vehicleColour, int numberOfWheels, boolean convertible) {
}
// toString method override
@Override
public String toString() {
return super.toString() + convertible;
}
}
我希望我的输出类似于“福特是 红色,有 4 个轮子并且 是敞篷车”,带有粗体字分别来自 Vehicle 和 Car 类。
如何让粗体文本显示在输出中?现在我只得到默认值,例如 null、0 和 false。
感谢任何意见,我知道我可能正在做一些非常愚蠢但非常明显但我看不到的事情。
谢谢。
【问题讨论】:
-
首先,您给我们的代码甚至无法编译。在
Vehicle类中,vehicleColour被定义为一个字符串,但getVehicleColour()尝试返回一个双精度值。 -
抱歉,我已经编辑了帖子。
-
@Keeron 如果我的回答对您有帮助,您可以吗?
-
@Md.SifatulIslam,您的回答远远超出了我最初的问题。谢谢!
标签: java tostring superclass