假設我有3個類:Car
,Convertible
和Garage
。返回子類對象的泛型getter
Car
是一個抽象類,Convertible
繼承:
轉換具有一個稱爲unfoldRoof()
特定的方法。
Garage
包含一個Car
具有以下getCar()
方法:
public Car getCar() {
return car;
}
當訪問在吸氣劑的Car
屬性,我無法使用特定Convertible
方法unfoldRoof()
。
我怎樣才能建立一個通用吸氣,返回子類而不是抽象父類?
1.您可以只是其返回,而不是汽車敞篷。 2.如果Car *不是*敞篷車,並且沒有該方法,會發生什麼情況? – Carcigenicate
如果您確定它是一輛敞篷車,您還可以將結果投射到一輛敞篷車並調用unfoldRoof()。或者在鑄造之前檢查它是否實際上是敞篷車(使用instanceof)。 –
@KostasStamos,我寧願保持它的通用性,因爲我需要實現更多的兒童類汽車。 –