абстрактное ключевое слово — Java
1. Структура модификации: класс, метод
2. Абстрактный модифицированный класс: абстрактный класс
- Этот класс не может быть создан (окончательный: не может наследовать static: то же, что и абстрактный класс: не может быть создан, требуется подкласс)
- В абстрактном классе должен быть конструктор, который удобно вызывать при создании экземпляра подкласса (включая: весь процесс создания экземпляра объекта подкласса)
- Во время разработки будут предоставлены подклассы абстрактных классов, чтобы позволить создавать экземпляры объектов подкласса и выполнять связанные операции —> предварительное условие для использования абстракции: наследование
3. абстрактный метод модификации: абстрактный метод
- Абстрактный метод имеет только объявление метода, без тела метода (public abstract void eat();)
- Класс, содержащий абстрактные методы, должен быть абстрактным классом. И наоборот, абстрактные классы не могут иметь абстрактных методов (подклассы могут вызывать неабстрактные методы).
- Если подкласс переопределяет все абстрактные методы в родительском классе, экземпляр подкласса может быть создан.
- Если подкласс не переопределяет все абстрактные методы в родительском классе, подкласс также является абстрактным классом и должен быть изменен с помощью абстрактных методов.
Неабстрактным подклассам необходимо переписывать абстрактные методы, а абстрактным подклассам не нужно переписывать абстрактные методы. При переписывании вам необходимо переписать все унаследованные абстрактные классы, включая абстрактные методы в родительском классе родительского класса.
4. Примечания
-
abstract нельзя использовать для изменения: свойств, конструкторов и других структур
-
abstract нельзя использовать для изменения частных методов, статических методов, конечных методов и конечных классов.
1. Подклассу необходимо переписать абстрактный метод родительского класса.Если родительский класс является закрытым, подкласс не может быть переписан, поэтому возникает конфликт (
перезапись) или являются статическими (не перезаписываются). Если родительский класс является статическим методом, метод подкласса не может быть переопределен, поэтому возникает конфликт.
3. Финальные методы нельзя переопределить, конечные классы нельзя наследовать.