我需要一个关于这个例子的五年级解释:
Car x = new Ford();
为什么Ford
可以是Car
?
答案 0 :(得分:1)
在您的示例中,x
是Ford
类型Car
。这看起来像是继承的一个例子。 Car
是一个抽象类,包含所有汽车都有的东西,例如轮子,引擎,体型等。Ford
将实现这些方法,因此它们特定于Ford
所有的东西有
简单示例:
public abstract class Car {
public boolean isCar() {
return true;
}
}
public class Ford extends Car {
public boolean isFord() {
return true;
}
}
public class Audi extends Car {
public boolean isAudi() {
return true;
}
}
System.out.println("Is Ford a car ? "+new Ford().isCar());
System.out.println("Is Audi a car ? "+new Audi().isCar());
System.out.println("Is Ford a ford ? "+new Ford().isFord());
System.out.println("Is Audi a ford ? "+new Audi().isFord());
最后一行可能会给出NPE,因为课程Audi
没有函数isFord()
。