это не так, как вы упомянули для частного поля.Вы не можете расширить частное поле от суперкласса до подкласса.если вы объявляете поле с тем же именем, вы определяете новое поле для этого подкласса.
Однако вы можете изменить доступ к пакету и защищенный доступ на что-то более похожее на public, и это не создает никаких проблем, потому что суперкласс не 't для этого подкласса, но подкласс может изменить свое поведение, зависит от его состояния и хочет предоставить это для других пользователей.
Например, когда он защищен, вы можете получить доступ только к этому в этом пакете и в подклассе.однако, возможно, вы делаете некоторые работы, которые не подходят для публичной реализации.(если вы делаете что-то общедоступным, вы должны поддерживать его для будущих выпусков), однако в подклассе вы можете переопределить его и добавить к нему новую функцию и предоставить результат, который будет использоваться другими людьми.
Хороший пример (всегдаjava предоставьте лучший пример):
Если вы видите, java объявил это в классе объекта:
class Object {
protected native Object clone() throws CloneNotSupportedException;
}
, поэтому никто не может вызвать clone()
для него.это хорошо, потому что, возможно, я не хочу предоставлять clone()
для моего класса.однако, если я этого захочу, это легко переопределить и сделать его общедоступным для других людей, а также вызвать в нем super.clone()
для использования функции, которая была реализована ранее для создания новой копии моего класса.Разве не здорово?!