В приведенном ниже коде объект дочернего класса вызывает свой метод getBankName(), но вместо этого вызывается закрытый метод getBankName() родительского класса.
public class Bank {
private void getBankName() {
System.out.println("Bank");
}
public static void main(String[] args) {
Bank bank = new MyBank();
bank.getBankName();
}
}
class MyBank extends Bank {
public void getBankName() {
System.out.println("MyBank");
}
}
Кроме того, если я изменю спецификатор доступа родительского метода на public, он будет работать нормально (дочерний объект вызывает свой собственный метод и печатает «MyBank»). Почему на вызов влияет только спецификатор доступа родительского метода??
get
методы возвращают значение; вместоvoid
тип должен бытьString
, а вы должныreturn "Bank"
. - person chrylis -cautiouslyoptimistic-   schedule 30.05.2020