所以我搜索了希望找到某種想法或方式去實現它。繼承枚舉值java
我有一個名爲電影的基類,其實例變量爲id,名稱,借出和借入。然後這個電影類由兩個類bluray和dvd派生。基本上長話短說,他們都建在我正在建設的一個圖書館課上。在電影類型中,我想創建一個名爲genre的枚舉變量,它包含可應用於影片的類型。但我不知道我如何去繼承這個枚舉變量到藍光和DVD類。
我已經被告知它可以完成,但如果任何人都可以闡明我如何去做這件事會很棒!
所以我搜索了希望找到某種想法或方式去實現它。繼承枚舉值java
我有一個名爲電影的基類,其實例變量爲id,名稱,借出和借入。然後這個電影類由兩個類bluray和dvd派生。基本上長話短說,他們都建在我正在建設的一個圖書館課上。在電影類型中,我想創建一個名爲genre的枚舉變量,它包含可應用於影片的類型。但我不知道我如何去繼承這個枚舉變量到藍光和DVD類。
我已經被告知它可以完成,但如果任何人都可以闡明我如何去做這件事會很棒!
在電影類型中,我想創建一個名爲genre的枚舉變量,它包含可應用於影片的類型。但我不知道我如何去繼承這個枚舉變量到藍光和DVD類。
只是使其成爲不是private
的電影類型的成員。 (或者只是在電影類型之外的同一個包中的枚舉。)然後,藍光和DVD類將有權訪問它。
例子:
Movie.java
:
public class Movie {
public enum Genre {
Horror,
SciFi,
RomCom
};
protected Genre genre;
public Movie(Genre g) {
this.genre = g;
}
}
BluRay.java
:
public class BluRay extends Movie {
public BluRay(Genre g) {
super(g);
}
}
注意Genre
並不一定是內Movie
可言的,你可能會更好,如果它不是(只是在相同的包或類似的)。但如果你想Genre
在Movie
,你可以在那裏。
旁註:你沒有問你的設計的反饋,但FWIW我可能不會讓Genre
枚舉,因爲你必須以添加流派,這似乎是一個常見的重新編譯操作。
謝謝T.J!簡單而有效! –
你可以直接聲明獨立於你的類的枚舉(在一個新文件中),然後用在我聲明枚舉類型的變量movie_type的影片類中。
當你想使用父類的成員時,你必須提供對它的訪問。
Java將訪問modyfier指定爲public,protected,(default),private。
如果將訪問modyfier設置爲受保護,您將能夠讀取和寫入該成員。
BTW
的想法存儲枚舉形式的性別是不是最好的德興性別變化,你將不得不在你的應用程序的開始添加的每個人。
枚舉的好解決方案將是設備類型。如DVD或CD,因爲這是您可以輕鬆管理的內容。
[Java擴展枚舉]可能的重複(http://stackoverflow.com/questions/1414755/java-extend-enum) –
@sᴜʀᴇsʜᴀᴛᴛᴀ:不,她不問如何從枚舉派生。 –