Java'daki anonim bir sınıfın süper sınıfından başka yöntemleri olabilir mi? [çiftleme]
Anonim sınıfların geçersiz kılmak için iyi olduğunu biliyorum, ancak aşağıdaki örnekte olduğu gibi üst sınıfta bulunmayan diğer yöntemleri de ekleyip ekleyemeyeceğinizi merak ediyorum.
Bu, wieBenIk'in tek yöntem olduğu sınıfım.
public class Driehoek {
//methoden
public void wieBenIk(){
System.out.println("ik ben een driehoek");
}
}
ve işte newMethod'u eklediğim anonim sınıfım.
public class Ana {
public static void main(String[] args) {
Driehoek test = new Driehoek(){
@Override
public void wieBenIk() {
System.out.println("overrided by anonymous class");
}
public void newMethod(){
System.out.println("I am a new method");
}
};
test.newMethod();
}
}
Sorum test.newMethod () neden çalışmıyor? Başka bir çocuk sınıfı değil mi? Bana yardım ettiğiniz için herkese teşekkürler.
Yanıtlar
test , Driehoek'in bir örneği olarak ilan edildi . Bu nedenle, derleyici için Driehoek üyelerine sahip olacaktır .
Benzer şekilde, eğer tanımlarsanız
Object test = new Driehoek() {....};
derleyici testi için yalnızca Object üyelerine sahip olacaktır .
Anonim sınıfa daha fazla üye eklerseniz, derleyici testin bu yöntemlere sahip olduğunu bilmez . Yani onları kullanmanıza izin vermiyor