簡體   English   中英

繼承類擴展

[英]Inheritance class extends

Ford 類擴展了 Car 類。 以下哪些表達是合法的?

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

這些代碼行是不合法的:

y = x;
y = new Car();

那么它是怎樣工作的?

當您聲明Car類型的變量時,該變量可以是任何汽車(如福特或法拉利)。

但是當你聲明一個Ford類型的變量時,這個變量可以是任何Ford car ,比如福特野馬汽車。 但它永遠不可能是法拉利。

此外,這是合法的:

Car a = new Ford();
Ford b = (Ford) a;

因為a是 Car 但它可以被鑄造為福特,因為它也是福特。

當然,這是不合法的:

Car c = new Ferrari();
Ford  d = (Ford) c;

這段代碼可以編譯。 但是你會有一個 ClassCastException 因為c不是福特。

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM