Olası Çoğalt:
add values to enumJava enum miras
Neden Java çeteleler diğer çeteleler devralamaz? Bu neden böyle uygulandı?
Olası Çoğalt:
add values to enumJava enum miras
Neden Java çeteleler diğer çeteleler devralamaz? Bu neden böyle uygulandı?
bir enum öğe ekleyebilen etkili süper sınıf değil, bir alt sınıf yaratacak çünkü.
düşünün:
enum First {One, Two}
enum Second extends First {Three, Four}
First a = Second.Four; // clearly illegal
Second a = First.One; // should work
Bu normal sınıflar ile çalışır o şekilde tersidir. Sanırım bu şekilde uygulanabiliyordu ama , 'u uygulamaktan daha karmaşık olurdu ve kesinlikle insanları şaşırtıyor.
Muhtemelen ne istiyorsun İlk uygular Arayüzüm İkinci uygular Arayüzüm Sonra = Second.One yasadışı deyimi İlk iki grup – user1176505
misiniz birliği için MyInterface kullanılır? –
@TimothySwan Başvurulan kod derlenmeyecektir, çünkü bir istisna Enum İkinci uzanır İlk {Three, Four} satırında atılacaktır. –
http://stackoverflow.com/questions/55375/add-values-to-enum –
Soruyu yeniden hatırlatırım. Enemlerin neden soyut bir temeli olamaz? Bill tarafından alıntılanan soruya verilen yanıtın cevabı, enilleri neden başka değerlerle genişletemeyeceğinizi açıklıyor, ancak neden bir temel uygulamayı paylaşamayacakları açık değil. –