我已经阅读了我的 java 书的继承部分,并尝试了以下示例作为练习:
public class Car {
private int wheels;
private int doors;
public Car(int initWheels, int initDoors){
wheels = initWheels;
doors = initDoors;
}
public int getWheels(){
return wheels;
}
public int getDoors(){
return doors;
}
protected int calculateMaterials(){
return wheels + doors;
}
}
public class Ford extends Car{
private String color;
private String type;
private int horsePower;
public Ford(int initWheels, int initDoors, String initColor, String initType, int initHorsePower){
super(initWheels, initDoors);
color = initColor;
type = initType;
horsePower = initHorsePower;
}
public String getColor(){
return color;
}
public String getType(){
return type;
}
protected int calculateMaterials(){
return getWheels() + getDoors() + horsePower;
}
}
主要的:
public class Main {
public static void main(String [] args){
Car car = new Car(4,4);
Car myCar = new Ford(6,2,"black", "pickup", 2);
System.out.println(myCar.getWheels());
System.out.println(myCar.calculateMaterials());
}
}
然而,在重新查看代码后,我开始质疑自己是否可行:Car myCar = new Ford(6,2,"black", "pickup", 2);
. . . 我运行它,看到输出完全相同,现在我想知道这是不是:
Car myCar = new Ford(6,2,"black", "pickup", 2);
还有这个
Ford myCar = new Ford(6,2,"black", "pickup", 2);
同样的事情,如果是这样,哪个更可取或更常见?如果不是,我怎么会得到相同的输出?