1/6
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Наследование это…
один из ключевых принципов ООП, который позволяет создавать новый класс на основе уже существующего. Подкласс наследует все public, package-private (если subclass и superclass находятся в одном пакете) и protected поля и методы родительского класса, а также может добавлять свои собственные поля и методы или переопределять унаследованные.
Идея наследования
“When you want to create a new class and there is already a class that includes some of the code that you want, you can derive your new class from the existing class. In doing this, you can reuse the fields and methods of the existing class without having to write (and debug!) them yourself.”
Как происходит Переопределение методов?
Чтобы переопределить метод экземпляра, достаточно снова определить в подклассе метод с той же сигнатурой, что и у в родительском классе. Далее, при обращении к данному методу через экземпляр подкласса, будет вызвана его переопределённая версия. Экземпляр суперкласса будет вызывать старую версию данного метода.
При определении статического метода с той же сигнатурой, что и в суперклассе, ситуация иная. Версия вызываемого статического метода зависит от того, вызывается ли он из суперкласса или из подкласса.
Наследуются ли private члены подклассом?
Члены суперкласса с модификатором private не наследуются подклассом. Но к ним можно получить доступ опосредованно через унаследованные методы суперкласса.
Ограничение модификаторов доступа при переопределении метода.
Переопределяемый подклассом метод должен иметь менее строгое ограничение доступа, чем его версия в родительском классе.
Полиморфизм?
Способность объектов с одинаковым интерфейсом (или общим родителем) вести себя по-разному, позволяя программе работать с разными типами данных через единый интерфейс.