Java'da bir alt sınıf metodunun bir alt sınıfın üyeleri için görünmeyeceği bir dil özelliği olup olmadığını merak ediyorum:Java'da korumalı sınıf yapısı?
public class Subclass extends protected Superclass
veya bir şey. Bir örnek vereceğim.
İşte süper sınıfınız.
public class A{
public String getA(){...}
public String getB(){...}
public String getC(){...}
public void setA(String a){...}
public void setB(String b){...}
public void setC(String c){...}
}
Bazı yöntemlerini korurken A sınıfı alt sınıflara ayırmak istiyorsanız ve bunları değiştirmedikçe yöntemlerde erişim değiştiricilerini değiştiremezseniz, bu gibi bir şeye sahip olursunuz:
public class B extends A{
private String getA(){return super.getA();}
private String getB(){return super.getB();}//These four methods have
private void setA(String a){super.setA(a);}//to be redeclared.
private void setB(String b){super.setB(b);}
public String getC(){return super.getC();}//These two methods can be
public void setC(String c){super.setC(c);}//removed.
public String getD(){...}
public void setD(String d){...}
}
Ya da özel bir A örneğini saklayabilir ve böyle bir şeye sahip olabilirsiniz:
public class B{
private A obj;
private String getA(){return obj.getA();}
private String getB(){return obj.getB();}//These four methods can also
private void setA(String a){obj.setA(a);}//be removed.
private void setB(String b){obj.setB(b);}
public String getC(){return obj.getC();}//These two methods are
public void setC(String c){obj.setC(c);}//redeclared.
public String getD(){...}
public void setD(String d){...}
}
Her iki yöntemde de tekrar etmek zorunda kalmamanız gereken bir şey var mı?
+1. –
İleri C++ öğretmek için kullanılırken, alt yazı ilişkilerini göstermek için venn şemaları çizdim ve alt sınıfların içinde ve dışında görülenleri gösterdim, kavramı göstermenin çok etkili olduğunu buldum. Ancak, sık sık, değerinden daha fazla sorun olduğunu hissettim. – Uri