2015-01-20 6 views
2

Я узнал, что интерфейсы и абстрактные классы в java помогают нам достичь абстракции. Однако я не совсем понимаю, что теория, абстракция означает скрытие внутреннего механизма и отображение только соответствующих деталей, но как именно интерфейс и абстрактный класс помогают нам в этом.Как мы можем добиться абстинкции с помощью интерфейсов в java?

Может кто-нибудь, пожалуйста, объясните мне примеры реальной жизни.

+0

Я считаю, что вы описываете ' encapsulation'. –

+0

«Интерфейс» похож на контракт, он говорит: «Я гарантирую выполнение этого поведения», как это на самом деле не имеет значения ... – MadProgrammer

+0

Как и @MadProgrammer, интерфейс не показывает, как что-то делается, но что нужно сделать , – charliebrownie

ответ

5

abstraction via interface

Здесь Shape может быть интерфейс. и Rectangle и Triangle реализуют классы.

Можно сказать, как:

Прямоугольник форма.

Аналогично

треугольник также форму.

A Shape имеет площадь, основанную на ее размерах. И каждая форма может иметь разные вычисления для области .

Здесь абстракция находится в area() в интерфейсе Shape. Но реализация area() различается во всех его классах реализации.


Таким же образом вы можете взять пример Animal интерфейса, который может иметь Cat, Dog и многие из таких исполнителей классов.


what is abstraction

0

Interface s и abstract классов не имеет реализации и абстракции вы только показывать пользователям Interface с и abstract классов. Таким образом, детали реализации скрыты от пользователей, и пользователь может просматривать только определения.

0

интерфейс и абстрактный класс оба обеспечивают абстракции, хотя и на разных уровнях,

Интерфейс обеспечивают 100% абстракции, в то время как Абстрактный класс обеспечивает частичную абстракцию.

Интерфейс не может иметь конкретную функцию декларацию, в то время как Аннотация класс может иметь один.
(конкретные функции являются функциями с телом)

реального мир ПРИМЕРЫ

АБСТРАКЦИЯ Скрытием внутренних сложностей от конечного пользователя является абстракцией.

Например

магнитофона
(100% абстракция, ИНТЕРФЕЙС Пример)

1.Press ВОСПРОИЗВЕДЕНИЕ играть,
2 .Нажмите STOP остановить.
Конечный пользователь не должен беспокоиться о том, как это делается, просто функциональность выполняется нажатием кнопки.

магнитофон
(частичная абстракция, абстракция Примера)

1.You имеет рабочий стол,
2.You сделать обычный материал на предварительно загруженной ОС Windows.
3. Вы начинаете исследовать и создавать свои собственные ОС или расширять ОС UNIX, используя свои функциональные возможности.
4. Теперь, когда вы используете тот же DESKTOP, он по-прежнему имеет абстракцию при запуске системы, нажимая кнопку START и все, и вы ничего не знаете, как это делается внутри, но как только ваша ОС загружается, вы выполняете написанную вами функциональность, делая это, вы не просто используете абстрактную вещь, но знаете, как это делается тоже.

МИР Примеры программирования #

АБСТРАКЦИЯ

Например

API,
(100% абстракция, ИНТЕРФЕЙС Пример)

1.you получить функции API,
2.Pass: параметр, и вы получите результат в виде возвращаемого типа.
3.Но пользователь не знает, что делает внутренняя обработка.

Руководитель группы дает Architecture

(100% абстракция, ИНТЕРФЕЙС Пример)
1.you получить интерфейс, как и к тому, что все, что вам нужно сделать в качестве программиста ,
2.You создать класс и реализовать интерфейс.
3. Вы реализуете все нереализованные методы и обеспечиваете работу.
Как и руководитель команды, он не дает ни малейшего представления о функциональности, но знает, какая функция будет делать то, что.
(футуристический подход, как правило, используется в программировании)

Программист сделать абстрактный класс

(частичная абстракция, абстракция Пример)
1.You сделать абстрактный класс для вашего использования,
2. После этого вы осознаете, что вам необходимо предоставить метод для некоторых функций, которые вы хотите ребенок класс можно использовать.
3.Выпишите функцию прямо в конкретной функции.
Вот как быть программистом, вы знаете, некоторые функциональные возможности, в то время как вы не знаете, что другие будут реализовывать в нереализованных функциональности. (Без конкретных абстрактных функций)

+0

[Из Java 8 вы можете определять статические методы в интерфейсах в дополнение к методам по умолчанию] (http://stackoverflow.com/a/22713721/725306) –

Смежные вопросы