Я прочитал почти из всех источников, что частные члены не наследуются. Затем как getters и seters этих частных полей могут получить доступ к закрытым полям в subClass?Частные члены не наследуются. то как геттеры и сеттеры могут получить доступ к закрытым полям в субклассе?
вот мой код, который работает нормально.
class First{
private String first;
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
}
public class PrivateFieldTestingUsingGettersAndSetters extends First{
private String second;
public String getSecond() {
return second;
}
public void setSecond(String second) {
this.second = second;
}
public static void main(String[] args){
PrivateFieldTestingUsingGettersAndSetters ob1=new PrivateFieldTestingUsingGettersAndSetters();
ob1.setFirst("first");
ob1.setSecond("second");
System.out.println(ob1.getFirst());
System.out.println(ob1.getSecond());
}
}
Выход: первого второго
Публичные геттеры и сеттеры - это окно в душу вашего класса. Они наследуются и имеют доступ к конфиденциальным данным. Это не прямой доступ, хотя вы можете либо a) не определять их, либо b) изменять способ доступа к этим значениям через них. – scrappedcola
они доступны везде, причем не только из класса наследования. если не было способа вызвать методы, в которых инкапсуляция частных членов была бессмысленной – user2717954