首先,我想對我的語法道歉,因爲英語不是我的第一語言,通常我做語法錯誤......面向對象和Java:如何從抽象類推廣?
有一些問題一直阻止我做通用代碼:
如何將抽象類與抽象方法放在另一個抽象類中?我知道抽象類不能實例化,但是......沒有辦法用通用性來做到這一點嗎?
一個例子:我有抽象類貓科動物,這個類有幾個抽象方法。還有另外一類:Cage類,它只能包含一定數量的一種貓科動物物體(比如一隻貓的籠子,一隻虎皮鸚鵡,一隻獅子籠等)......但是,我是否這樣做?我不能實例化Felines裏面的籠子裏類...我怎麼做一隻貓的籠子?
另一個例子,我注意到我可以使用只有兩個排序標準來排序一個東西的集合:這東西是否追趕這另一個東西?和:這個東西在這之前是另一個東西嗎?因此,每個可排序的東西都必須有兩個布爾方法:「goesAfter(stuff):boolean」和「goesBefore(stuff):boolean」,然後,我通過組合/聚合關係將這些東西放到另一個類中,讓我們把它稱爲LotsOfSortableStuff類,並且我會把「sort():void」方法,這個方法將使用從這個可排序的東西的goAfter和goesBefore方法...
有很多事情可以排序:學生(按學位),孩子(按身高),姓名(按照排序)等等......問題是:每當我想要製作一個可排序的東西的集合時,我必須重複輸入相同的兩種方法,和分類algorythm!
如何在這類問題中應用通用性?
的感謝!它幫了很多......但是,** List **班怎麼樣才能存儲** Felines **? – Bengalaa
@RuthGarcía定義的'List'接口是Java已經被設置來處理* generics *。通過這種方式,Java程序員可以創建任何類型的List,甚至可以創建自己創建的List。 –
就像一個說明,你的'Feline'聲明應該是'公共抽象類Feline implements Comparable' –
cmbaxter