Можно ли сузить уровень доступа/тип возвращаемого значения при | Java библиотека
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass). • Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type. • Можно сузить возвращаемое значение, если они совместимы. Например:
public class Animal {
public Animal eat() { System.out.println("animal eat"); return null; }
public Long calc() { return null; }
} public class Dog extends Animal {
public Dog eat() { return new Dog(); } /*attempting to use incompatible return type public Integer calc() { return null; } */ }