考慮以下語句: 「A超類提供一個輔助數據類型以它的子類的對象」輔助數據類型
同樣, 「的接口提供了一個輔助數據類型的實現該接口的類對象。 「
什麼是輔助數據類型,它在這些語句中意味着什麼?一個例子將不勝感激。謝謝。
考慮以下語句: 「A超類提供一個輔助數據類型以它的子類的對象」輔助數據類型
同樣, 「的接口提供了一個輔助數據類型的實現該接口的類對象。 「
什麼是輔助數據類型,它在這些語句中意味着什麼?一個例子將不勝感激。謝謝。
這意味着可以將子類實例分配給超類的變量,並且類似地,可以將實現接口的類的實例分配給接口類型的變量。
public class BaseClass {}
public class SubClass extends BaseClass {}
public interface Inter {}
public class InterImpl implements Inter {}
...
BaseClass var1 = new SubClass();
Inter var2 = new InterImpl();
而且與真正的類/接口的例子:
List<String> list = new ArrayList<String>(); // ArrayList is a class that implements List
HashMap<String,Integer> map = new LinkedHashMap<String,Integer>(); // LinkedHashMap is a sub-class of HashMap
@ user5514883你可以說''ArrayList'有一個輔助類型 - 'List'接口。同樣,你可以說'LinkedHashMap'有一個輔助類型 - 它的超類'HashMap'。實際上可以有多種次要類型。對於'ArrayList','Collection'也是一個次要類型(因爲它是List的超級接口,Object類是所有類的次要類型,因爲所有的類都是Object的子類) 。 – Eran
關注的情況一樣,
class SuperA{...}
class SubA extends SuperA{...}
interface SuperAInterface{...}
class ImplementsofSuperAInterface implemets ASuperAInterface{...}
,這樣就可以做這樣的事情,
SuperA refA = new SubA();
ImplementsofSuperAInterface refA = new ASuperAInterface();
最終,你可以使用父/超級/接口的引用變量,這是它的派生類的實例。
如果你想澄清一個語句,你需要提供上下文(源)。 –
Polymorphism https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html –
Foo擴展Bar,那麼你可以通過Foo引用Foo以及Bar,因此提供二級數據類型 – SSH