Программирование на языке Java

         

Abstract



abstract

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

В нашем примере для вызова реализованного в под-классе класса А метода callme и реализованного в классе А метода metoo используется динамическое назначение методов, которое мы обсуждали раньше. С:\> Java Abstract Inside B's callrne method Inside A's metoo method



Содержание раздела