Основы программирования на языке Java. Сухов С.А. - 31 стр.

UptoLike

Составители: 

34
А вот и результат запуска этой программы:
а = 42 b = 99
3.16. Директива abstract
Бывают ситуации, когда нужно определить класс, в котором задана
структура какой-либо абстракции, но полная реализация всех методов от-
сутствует. В таких случаях вы можете с помощью модификатора типа abstract
объявить, что некоторые из методов обязательно должны
быть замещены в
подклассах. Любой класс, содержащий методы abstract, также должен быть
объявлен, как abstract. Поскольку у таких классов отсутствует полная
реализация, их представителей нельзя создавать с помощью оператора new.
Кроме того, нельзя объявлять абстрактными конструкторы и статические
методы. Любой подкласс абстрактного класса либо обязан предоставить
реализацию всех абстрактных методов
своего суперкласса, либо сам должен
быть объявлен абстрактным.
abstract class A {
abstract void callme();
void metoo() {
System.out.println("Метод metoo класса А");
}
}
class B extends A {
void callme() {
System.out.println("Метод callme класса B");
}
}
class Abstract {
public static void main(String args[]) {
A a = new B():
a.callme():
a.metoo():
}
}
В нашем примере для вызова реализованного в подклассе класса А
метода callme и реализованного в классе А метода metoo используется
динамическое назначение методов, которое мы обсуждали раньше.