Абстрактный класс - это класс, к которому abstract
добавлено ключевое слово. Класс должен иметь префикс, abstract
если у него есть один или несколько методов с ключевым словом abstract. Абстрактный метод только объявлен, но не реализован. Абстрактный класс не может быть создан, но может быть унаследован другим классом. Класс-наследник должен реализовывать все абстрактные методы, иначе подкласс также должен быть объявлен как абстрактный.
Например:
abstract class abstractClass {
abstract void abstractMethod();
void concreteMethod() { // concrete methods are still allowed in abstract classes
System.out.println("This is a concrete method.");
}
}
Абстрактные классы могут содержать поля , которые не являются final
и static
и могут содержать реализованные методы , как хорошо , но интерфейсы не могут. Абстрактные классы только с абстрактными методами следует определять как интерфейсы.
Когда абстрактный класс реализует интерфейс, не все методы интерфейса должны быть реализованы, если класс не является абстрактным, должны быть реализованы все методы интерфейса.
Например:
abstract class X implements Y {
// implements all but one method of Y
}
class XX extends X {
// implements the remaining method in Y
}
Абстрактные классы могут иметь static
поля и static
методы и работают с обычными классами.
Создайте подкласс абстрактного класса и реализуйте абстрактный метод.