Class 继承类扩展

Class 继承类扩展,class,inheritance,Class,Inheritance,福特汽车的等级延伸了汽车的等级。下列哪种表达是合法的 Car x = new Car(); Ford y = new Ford(); x = y; y = x; y = new Car(); x = new Ford(); 这些代码行不合法: y = x; y = new Car(); Car c = new Ferrari(); Ford d = (Ford) c; 那么它是如何工作的呢 当您声明类型为Car的变量时,该变量可以是任何汽车(如福特或法拉利) 但是,当您声明类型为Ford

福特汽车的等级延伸了汽车的等级。下列哪种表达是合法的

Car x = new Car();
Ford y = new Ford();
x = y;
y = x;
y = new Car();
x = new Ford();

这些代码行不合法:

y = x;
y = new Car();
Car c = new Ferrari();
Ford  d = (Ford) c;
那么它是如何工作的呢

当您声明类型为
Car
的变量时,该变量可以是任何汽车(如福特或法拉利)

但是,当您声明类型为
Ford
的变量时,该变量可以是任何
福特汽车
,就像福特野马汽车一样。但它不可能是法拉利

此外,这是合法的:

Car a = new Ford();
Ford b = (Ford) a;
因为
a
是一辆汽车,但它可以被铸造成福特,因为它也是一辆福特

当然,这是不合法的:

y = x;
y = new Car();
Car c = new Ferrari();
Ford  d = (Ford) c;
这段代码可以编译。但是您将有一个ClassCastException,因为
c
不是福特


希望对你有帮助

这看起来像是家庭作业,我们需要为你做所有的工作。这是一道我一直坚持的旧试题。谢谢你花时间给我回信