Класс, модифицированный ключевым словом Abstract, мы называем абстрактным классом , то есть абстрактным классом , например:
абстрактныйклассA{…}
Методы, модифицированные ключевым словом абстрактные, мы называем абстрактными методами , то есть абстрактными методами , например:
абстрактный int max(int x,int y);
Уведомление:
1) Для абстрактных методов разрешено только объявление и не разрешена реализация, то есть тело метода отсутствует, а окончательный и абстрактный не могут использоваться для одновременного изменения метода или класса, а статический является не разрешено изменять абстрактный метод, то есть абстрактный метод должен быть методом экземпляра.
2) Абстрактные классы могут иметь абстрактные или неабстрактные методы, но неабстрактные классы не могут иметь абстрактных методов.
Например: метод max() в классе A является абстрактным методом, а метод min() — обычным методом (неабстрактным методом).
AbstractclassA {abstractintmax (intx, inty); intmin (intx, inty) {returnx <y? x: y;}}
Для абстрактных классов вы не можете использовать оператор new для создания объектов этого класса. Если неабстрактный класс является подклассом абстрактного класса, он должен переопределить абстрактный метод родительского класса и передать тело метода. что он не может. Причина, по которой разрешено использовать Final и Abstract для одновременной модификации метода или класса.
Мы можем использовать абстрактный класс для объявления объекта. Хотя объект не может быть создан с помощью оператора new, он может стать преобразованием объекта своего подкласса, чтобы объект мог вызывать метод, переопределенный подклассом.
Примечание. У абстрактного класса может не быть абстрактного метода. Если абстрактный класс является подклассом абстрактного класса, он может либо переопределить абстрактный метод родительского класса, либо наследовать абстрактный метод родительского класса.