Kalıtımla ilgili bir sorun yaşıyorum (burada Öğrenci). Yaptığım her alt sınıf için 1 tane miras alınmış özel alandan yararlanabilmem gerekiyor. Açıkçası alt sınıflar miras alanlara erişemez, ancak miras alınan özel alanın bu nesnenin bir parçası olduğu yeni bir nesne oluşturulduğunda. Benim amaçlarım için, her bir alt sınıfın, bu miras alan için kendi özel değerine sahip olması gerekir. Kalıtsal alanlar için belirli değerler ekleme
Public class A {
private int x = 0;
public A(int n) {
x = n;
}
public int useX() {
return x;
}
}
Public class B Extends A {
int n = 1;
public B() {
super(n);
}
useX(); // Return 1?
}
Public class C Extends A {
int n = 2;
public B() {
super(n);
}
useX(); // Return 2?
}
Ancak Profesörlerimin Ayrıca o yeni bir alan yaratmak için benim Süper sınıfın içinde bir ayarlayıcı yöntemi kullanılarak olabileceğini söyle, oradan Kafam karışık: Benim ilk girişimi şuna benzer. Herkes bana doğru yönde yardım edebilir mi?
Gönderdiğiniz kod derlenmiyor ("B" ve "C" de "n" yok ve "süper" den önce hiçbir şey yapamazsınız). Eğer bunu düzeltirseniz, yaklaşımınızın doğru olduğunu düşünüyorum. Bir kurucu kullanmak, değere gereksiz sınırsız erişim vermeden değeri başlatmak için iyi bir yoldur. – resueman
Bildirimlerden yeni ayrıldım. –