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
不是福特
希望对你有帮助这看起来像是家庭作业,我们需要为你做所有的工作。这是一道我一直坚持的旧试题。谢谢你花时间给我回信