Aşağıdaki çıktıyı anlayamıyorum.Java devralma alanları
çıktı 10 nedenBen çizgi A a = new B()
sınıf B yeni bir örneğini oluşturur düşünüyorum bilmiyor, ben bu gibi çalışır Neden sonuç 20
class A {
int i = 10;
}
class B extends A {
int i = 20;
}
public class MainClass {
public static void main(String[] args) {
A a = new B();
System.out.println(a.i);
}
}
olması gerektiğini düşünüyorum .. lütfen açıklamak.
Bu değeri geçersiz değildir:
Sana 1 değişkeni kullanmaya ihtiyacım var Buradayım, –
gölgelisiniz. http://stackoverflow.com/questions/685300/is-there-a-way-to-override-class-variables-in-java –
Polimorfizm, yöntemler için değil, alanlar için işe yaramıyor. 'A' türü için bir değişken kullandınız, ben de 'i' türünde bir kopyasını kullandınız. Alanları ararken, nesnenin sınıfı değil, önemli olan değişkenin türüdür. –