对不起,如果这是有点令人困惑,第一次使用本网站,所以我不知道我是否正确输入我的代码。所以我的问题是,当我运行这个程序的类驱动程序我得到这个:如何添加输入到继承
name: No Name Yet
Manufacturer: no name yet
Engine Cyclinders: 0
Load: 0.0
Towing: 0.0
这是默认的,现在我想可以把输入的类驱动程序,这将改变说这个名字例如,我将其设置为Person
。我尝试过使用p.setName("Tim")
,但如果我拨打Person
的writeouput
方法,它只会显示名称tim
。如果我打电话给班级卡车writeoutput
,那么它说没有名字。我把writeoutput
放在超级,但我不知道我做错了什么。任何帮助,将不胜感激
public class Person {
private String name;
public Person()
{
name = "No Name Yet";
}
public Person(String initialName)
{
name = initialName;
}
public void setName(String newName)
{
newName = "tim";
name = newName;
}
public String getName()
{
return name;
}
public void writeOutput()
{
System.out.println("name: " + name);
}
public boolean hasSameName(Person otherPerson)
{
return this.name.equalsIgnoreCase(otherPerson.name);
}
}
public class Vehicle extends Person {
String manufactName;
int engine;
public Vehicle()
{
manufactName = "no name yet";
engine = 0;
}
public Vehicle(String initialManufactName, int initialEngine)
{
manufactName = initialManufactName;
engine = initialEngine;
}
public void setManufactName(String newManufactName)
{
manufactName = newManufactName;
}
public void setEngine(int newEngine)
{
engine = newEngine;
}
public String getManufactName()
{
return manufactName;
}
public double getEngine()
{
return engine;
}
public void writeOutput()
{
super.writeOutput();
System.out.println("Manufacturer: " + manufactName);
System.out.println("Engine Cyclinders: " + engine);
}
public boolean hasSameManufactName(Vehicle otherVehicle)
{
return this.manufactName.equalsIgnoreCase(otherVehicle.manufactName);
}
public boolean hasSameEngine(Vehicle otherVehicle)
{
return this.engine == (otherVehicle.engine);
}
}
public class Truck extends Vehicle {
private double load;
private double towing;
public Truck()
{
load = 0;
towing = 0;
}
public Truck(double initialLoad, double initialTowing)
{
load = initialLoad;
towing = initialTowing;
}
public void setLoad(double newLoad)
{
load = newLoad;
}
public void setTowing(double newTowing)
{
towing = newTowing;
}
public double getLoad()
{
return load;
}
public double getTowing()
{
return towing;
}
public void writeOutput()
{
super.writeOutput();
System.out.println("Load: " + load);
System.out.println("Towing: " + towing);
}
public boolean hasSameLoad(Truck otherTruck)
{
return this.load == (otherTruck.load);
}
public boolean hasSameTowing(Truck otherTruck)
{
return this.towing == (otherTruck.towing);
}
}
public class Driver extends Truck{
public static void main(String[] args){
Person p = new Person();
Vehicle v = new Vehicle();
Truck t = new Truck();
t.writeOutput();
}
}
我会担心这个声明'newName =“tim”;'在你的'Person's'setName'方法中 – MadProgrammer 2013-04-23 00:28:59
哎呀,我忘了拿出来之前我发布它。 newName =“tim”;不在代码中了。我只是尝试不同的事情,看看我能上班 – Snobbysteven 2013-04-23 00:31:38
发布代码时,如果您可以缩小到相关部分,它会有所帮助。它使您的问题更具可读性,并可让您更快速地做出回应。 – 2013-04-23 00:40:46