[英]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.