29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
|
|
1 | |
Extends и Implements - определения10.01.2012, 19:48. Показов 64986. Ответов 21
Метки нет (Все метки)
Скажите пжл что означают эти слова и в чём разница между ними? Только по-простому объясните.
Спасибо Добавлено через 3 минуты Я думал, что EXTENDS - используется для определения интерфейсов, а IMPLEMENTS - для абстрактн. классов. Так или нет?
1
|
10.01.2012, 19:48 | |
Ответы с готовыми решениями:
21
implements, extends Implements Runnable implements InteratorAggregate Что такое Implements и как его юзать? |
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|||||||||||
10.01.2012, 19:52 | 2 | ||||||||||
Сообщение было отмечено как решение
Решение
androidos, ну если вкратце: extends - это ключевое слово для наследования от определенного класса
11
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
10.01.2012, 19:53 | 3 |
Сообщение было отмечено как решение
Решение
androidos, extends - расширяет класс. Говоря простыми словами - это наследование класса. В Java класс может наследоваться только от одного класса.
implements - реализует интерфейс, т.е. обязывает реализовать внутри класса все методы, описанные в интерфейсе. Один класс может реализовывать несколько интерфейсов Интерфейс, как и базовый класс при наследование, является супертипом для этого класса
10
|
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
|
|
10.01.2012, 21:43 [ТС] | 4 |
Спасибо народ!
0
|
12.01.2012, 09:11 | 5 | |||||
вообще я бы не стал, как программист завязывать на разделении этих понятий.
ведь фраза
1
|
12.01.2012, 14:53 | 6 | |||||
Сообщение было отмечено как решение
Решение
вы бы хоть тогда полную картину озвучивали чтоли, человек же просил по простому - если уж углубляться то не кусочком, а полностью:
И про то что основное различие интерфейса и абстрактного класса какраз в наследовании: имплементить можно много, а унаследовать только один абстракт
5
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
|
12.01.2012, 15:09 | 7 |
А разве не обязательно реализовать метод ale в class BBB который имплементит интерфейс AAA?
0
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
|
12.01.2012, 15:11 | 9 |
0
|
12.01.2012, 15:17 | 11 |
ну и опять мы взяли всё и смешали )))
давайте пойдём по шагам: 1. есть 2 интерфейса берём и implements Interface1, Interface2 //всё ок 2. есть 2 класса (и неважно абстрактных или нет), берём и extends Class1,Class2 // oops не вышло! вот вам и повод не мешать всё в кучу
0
|
12.01.2012, 15:24 | 12 |
TC просил объяснить, чем отличаются слова, и в чем их назначение.
в моем ответе содержалось указание на то что после implements указываются интерфейсы, в после extends классы. А знание о том, что в Java нет множественного наследования классов, это уже дело третье. Так что мой ответ был предельно точным - указывал на ошибки других, и давал только ту информацию, которую спрашивал TC.
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
12.01.2012, 15:24 | 13 | |||||
это все, конечно, отлично, но как вы объясните сей код
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
12.01.2012, 15:41 | 15 | |||||
turbanoff, в своем примере вы опустили класс почти до уровня обычного интерфейса, т.е. до того уровня, где разница между этими понятиями мало заметна(но, тем не менее, она есть).
Я же показал смысл extends и его отличие от implements. При implements - мы обязываем реализовывать существующий набор методов. При extends абстрактного класса мы не просто обязываем реализовывать существующий набор абстрактных методов, но мы так же можем управлять уровнями доступа этих методов, а так же использовать в наследнике уже реализованные методы из класса наследника. Т.е. в первом случае идет только реализация, а во втором не только реализация, но также возможно и расширение функционала базового класса. Также посмотрите на такой вариант
можете ответить самостоятельно
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
12.01.2012, 16:02 | 17 |
почему же? Мы именно обязываем. В случае абстрактного класса - это обязанность переходит по наследству в связи с абстрактностью предка
0
|
13.01.2012, 01:30 | 18 |
Даже Гослинг в своей книге довольно прозрачно намекнул что интерфейсы являются обязывающими инструкциями
<<<<< Глава 4 ИНТЕРФЕЙСЫ “Дирижирование” — это когда вы рисуете свои “проекты” прямо в воздухе, палочкой или руками, и нарисованное становится “инструкциями” для парней в галстуках, которые в данный момент предпочли бы оказаться где-нибудь на рыбалке. Фрэнк Заппа >>>>>
0
|
13.01.2012, 07:27 | 19 |
ну опять вы смешиваете слово implements и саму суть интерфейсов.
давайте так. предположим что все точно знают: Интерфейсов у класса может быть много, а базовый класс всего один. Любой не абстрактный класс должен реализовывать все нереализованные методы своих предков. тогда что такое implements?
0
|
13.01.2012, 21:12 | 20 |
Interface это:
1. Инструкции босса подчинённому. 2. способ отфильтровать доступные методы до какой либо унификации 3. способ сказать JVM что вы от неё хотите что-то специфическое (например сериализацию) 4. Создать контейнер для констант(хотя для этого лучше enum). 5. Сымитировать множественное наследование. implements это: взять на себя одно или более из перечисленных свойств Interface и либо реализовать необходимое, либо воспользоваться плюшками Мы вообще погрузились в какой то холивар ООП, думаю основное чем руководствовался Гослинг при создании такой конструкции как Интерфейс была попытка одним выстрелом отбиться от проблем множественного наследования с++ и добавить указывающий перст для тех кто пониже в иерархии разработки.
1
|
13.01.2012, 21:12 | |
13.01.2012, 21:12 | |
Помогаю со студенческими работами здесь
20
extends extends Для чего абстрактный класс, интерфейс и что такое implements Jinja2 extends Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |