2016-04-10 20 views
-1

Aşağıda derleme hatası var: "Yöntem, üst sınıftan yöntemi geçersiz kılmaz".Genel olarak jenerik kullanan bir soyutdan yöntemler nasıl kullanılır?

public abstract class BaseClass<T> { 
    protected abstract void doThing(T thing); 
} 

public abstract class BaseBaseClass<T> extends BaseClass { 

    @Override 
    protected void doThing(T thing) { 
    System.out.println("hi"); 
    } 
} 
+0

hata doğrudur, bir şey üzerinde hiçbir şey içermeyen bir '@ Geçersiz Kıl 'notu var, bu nasıl bir şey geçersiz kılabilir? –

+0

iletiyi güncelleştirdi, aslında temel sınıfı genişletiyor ve hata veriyor – ab11

+0

Hata veriyor, hata iletisi hala bekleniyor ve doğru ham türleri kullanır. 'BaseClass' genişletir 'ile aynı değil BaseClass '' ilk ile aynı' BaseClass ' –

cevap

1

Belki BaseBaseClass'ınızın BaseClass'ı genişletmesi gerekiyor mu?

public abstract class BaseBaseClass<T> extends BaseClass<T> { 

Elbette, bu noktada, artık soyut bir sınıf olması gerektiği gibi görünmüyor.

+0

uzatır. Soyut 'değiştirici kullanıldığı sürece. Soyut bir sınıfın soyut bir yönteme sahip olması zorunlu değildir. ;-) – Vampire

+0

temel sınıfı genişletiyor, sadece psuedo kodumdaki bir yazım hatası, yazıyı düzenledim. Gönderideki kod aynı hatayı verir. – ab11

+0

Hala bir yazım hatası yaşıyor gibi görünüyor ... seninkini benimkiyle karşılaştır ... Uzatmalar yanlış yerde. – billjamesdev

İlgili konular