Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Интерфейсы. Абстрактные классы и методы.Абстрактным классом в ООП называется базовый класс, который не предполагает создание экземпляров класса



Абстрактные классы и методы. Абстрактным классом в ООП называется базовый класс, который не предполагает создание экземпляров класса. Абстрактный класс может содержать абстрактные методы и свойства. Абстрактный метод не реализуется для класса, в котором он описан, однако должен быть реализован для его неабстрактных потомков.

Для обозначения абстрактных классов и методов используется ключевое слово abstract. Абстрактный метод не завершён; он состоит только из объявления и не имеет тела.

Класс, содержащий абстрактные методы, называется абстрактным и должен обозначаться ключевым словом abstract.

Сделаем класс Light абстрактным:

abstract class Light {

boolean isLit;

public abstract void on();

public abstract void off();

}

Теперь, если наследовать от класса Light, нам обязательно нужно определить методы on() и off(). Таким образом, класс Dimmer будет выглядеть так:

class Dimmer extends Light{

int brightness;

public void on(){

isLit = true;

brightness = 15;

}

public void off(){

isLit = false;

brightness = 0;

}

public void setBright(int bright){

brightness = bright;

}

}

Можно создавать класс с ключевым словом abstract даже тогда, когда в нём не имеется ни одного абстрактного метода. Это бывает полезно в ситуациях, где в классе абстрактные методы просто не нужны, но необходимо запретить создание экземпляров этого класса.

Интерфейсы. Ключевое слово interface – следующий шаг на пути к абстракции. Оно используется для создания полностью абстрактных классов, вообще не имеющих реализации. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов.

Для создания интерфейса используют ключевое слово interface вместо class. Для создания класса, реализующего определённый интерфейс, используется ключевое слово implements.

Сделаем из класса Light интерфейс:

interface Light {

void on();

void off();

}

Заметьте, что каждый метод интерфейса ограничивается простым объявлением. Вдобавок ни один метод интерфейса не объявлен со спецификатором public, все методы автоматически являются открытыми. Класс Dimmer будет реализовывать интерфейс Light:

class Dimmer implements Light{

boolean isLit;

int brightness;

public void on(){

isLit = true;

brightness = 15;

}

public void off(){

isLit = false;

brightness = 0;

}

public void setBright(int bright){

brightness = bright;

}

}

Вопросы для проверки знаний.

1. В чем заключается основная идея парадигмы процедурного программирования?

2. Каковы общие принципы парадигмы структурного программирования?

3. Какова главная идея парадигмы модульного программирования?

4. Каковы основные принципы, положенные в основу объектно-ориентированного программирования?

5. Что называют классом в объектно-ориентированном программировании?

6. Что называют объектом в объектно-ориентированном программировании?

7. Что называют абстрактными методами и классами?

8. Что называют интерфейсом?

9. Каковы три основных понятия в ООП?

10. В чем заключается смысл инкапсуляции?

11. В чем заключается смысл наследования классов в ООП?

12. В чем состоит общая идея полиморфизма?

13. Что называют перегрузкой метода?

14. Что называют переопределением метода?

15. Как в Java реализована защита от переопределения методов?

16. Как в Java практически производится выбор метода?

17. Каково в Java назначение указателя This?

18. Какой метод называют конструктором? Какую функцию он выполняет? Каков механизм его вызова в Java?

19. В чём отличие композиции и наследования?

20. Зачем используется запись @Override?

21. Какие в Java есть три спецификатора доступа и каково их назначение?

22. Как создать интерфейс и класс, его реализующий?





Дата публикования: 2015-07-22; Прочитано: 287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...