Я действительно новичок в этом, поэтому извините, если это слишком глупо.У меня возникают проблемы с решением, какую видимость использовать при использовании наследования в Java.
Для того, что я прочитал, чтобы иметь сильную инкапсуляцию, вы обычно устанавливаете свои атрибуты как закрытые и обращаетесь к ним с помощью открытых методов.
Но это не пойдет, когда у тебя есть неотъемлемость?Когда я читал документацию по Oracle, там говорится, что только открытые / защищенные члены наследуют подкласс.Но если я сделаю это, нарушу ли я инкапсуляцию?
Между тем, я использовал частные атрибуты в своем суперклассе, и я получал доступ к этим полям в своем дочернем классе с помощью открытых методов.Например:
abstract public class Person{
private String name;
Person(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}
public class Employee extends Person {
private int salary;
Employee(String name, int salary){
super(name);
this.salary = salary;
}
public void getDescription(){
return "Name is " + getName() + " and salary is " + this.salary;
}
}