powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем разница между абстрактным классом и интерфейсом?
25 сообщений из 43, страница 1 из 2
В чем разница между абстрактным классом и интерфейсом?
    #37706703
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На собеседовании задали вопрос, который поставил меня в тупик: В чем принципиальная разница между абстрактным классом и интерфейсом? По условию они имеют следующие декларации:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public abstract class B{
    public static final int i = 0;

    public abstract void method1();
    public abstract void method2();
    //...
}

public interface I{
    public static final int i = 0;

    public abstract void method1();
    public abstract void method2();
    //...
}
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706713
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jclass,

ответ прост - любой класс может наследоваться от любого количества интерфейсов, но только одного класса. Во всем остальном приведенный выше код будет вести себя идентично.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706726
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, jclass!
> В чем
> принципиальная разница между абстрактным классом и интерфейсом? По
> условию они имеют следующие декларации:

Хотя бы тем, что у интерфейса слова public static final abstract можно
опускать. Т.е. получается намного короче и красивее

Код: sql
1.
2.
3.
4.
5.
public interface I{
    int i = 0;
    void method1();
    void method2();
}



Ну и вызов интерфейса работает на пару тактов медленнее.
А так- отличий нет, это костыль в отсутствии множественного наследования.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706730
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA,

Меня сама постановка вопроса смутила, первое что пришло в голову сравнивать эти две сущности, о том, что меня спрашивали о множественном "наследовании" даже в голову не лезло, слишком простой ответ казался :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706734
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jclass,
класс - это объект.
А интерфейс - это контракт или свойство объекта.
Например, класс - кисть, и интерфейс - жёсткость её.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706739
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123класс - это объект.

:)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706743
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GKS_Samara,

То что, опускать модификаторы можно это понятно, в примере я специально указал, чтобы яснее было, о том, что спрашивали.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706749
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Объект - это ЭКЗЕМПЛЯР класса, поробуйте на досуге создать объект абстрактного класса :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706750
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
:)
ну, я не думаю, что в Java и MS определения interface сильно отличаются
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706754
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jclassPetro123,
Объект - это ЭКЗЕМПЛЯР класса, поробуйте на досуге создать объект абстрактного класса :)
неужели.
Я тебе сказал об объекте Кисть как о философском понятии.
Т.е. понимай суть, а не зубрёжку.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706848
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraА так- отличий нет, это костыль в отсутствии множественного наследования.
Сравнивать интерфейс и наследование немного неверно. У них разное назначение.
Наследование - это расширение свойств и поведения класса.
Интерфейс, как уже писал Petro123, это контракт, который класс поддерживает.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706859
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему вопрос какой-то некорректный если он ставился именно в этой постановке, если спрашивать в общем - то вопрос хороший и тут много чего можно сказать, а в вашем случае с заданными декларациями мягко говоря глупый. Хотя от вас возможно хотели узнать про отличия абстрактного класса и интерфейса а пример просто так привели..хз
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706878
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никПо-моему вопрос какой-то некорректный
+1

в примере (если он полон) они не отличаются ничем, потому что абстрактный класс B не реализует никакого базового функционала и потому бессмыслен.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706893
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaзабыл никПо-моему вопрос какой-то некорректный
+1
в примере (если он полон) они не отличаются ничем, потому что абстрактный класс B не реализует никакого базового функционала и потому бессмыслен.
+1
я смотрел на будущее, как на прародителя объектов.
Интерфейс же, будет сбоку-припёку.
Т.е. разные вещи всё равно.
Всё зависит от точки зрения и домысливания
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706924
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,

Ну собствено вопрос "В чем же разница между ними?" еще и на другом примере ставился:

Код: java
1.
2.
3.
4.
5.
6.
7.
public abstract class B{

}

public interface I{

}



Собственно ответ интервьювера(ов) поразил, оказавается спрашивали про "множественное наследование" интерфейсов, а я как не ищущий простых ответов на дословный вопрос залип на на нем :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706925
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Dan Black!

> Сравнивать интерфейс и наследование немного неверно. У них разное
> назначение.

Не совсем. Интерфейс- это его публичные методы/свойства.
Т.е. у любого класса есть реализуемый им безымянный интерфейс :)

> Наследование - это расширение свойств и поведения класса.

И интерфейса- тоже.

Отличии именно в том, что у интерфейса не может быть реализации.
А в скале есть trait, которые как бы и не класс, но и не интерфейс :)

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706944
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jclass,
ага, типа - чем отличает вырожденное дерево от палки.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37706965
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ах да, у абстрактного класса может быть конструктор по умолчанию который не можем объявить абстрактным:) в отличии от интерфейса. Но ответ ожидали другой, что любой другой класс может реализовать сколь угодно интерфейсов, а ведь вопрос был задан в чем различие между абстрактным классом и интерфейсом при условии аналогичных сигнатур класса. Понятно, что если бы намекнули туда куда клонят, то ответ был бы очевиден, тогда не пришлось бы отвечать :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707010
jclass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dan BlackНаследование - это расширение свойств и поведения класса.

Не обязательно.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707032
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jclassDan BlackНаследование - это расширение свойств и поведения класса.
Не обязательно. Правильные пацаны обычно обосновывают свой ответ ;)
Кроме того, моя цель была не написать полное описание термина наследования, так что хотелось бы в контексте "интерфейс - это костыль в отсутствии множественного наследования." что-нибудь услышать.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707050
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan Blackтак что хотелось бы в контексте "интерфейс - это костыль в отсутствии множественного наследования." что-нибудь услышать.
зачем?
Было много флеймов на данную тему :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707061
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Dan Blackтак что хотелось бы в контексте "интерфейс - это костыль в отсутствии множественного наследования." что-нибудь услышать.
зачем?
Было много флеймов на данную тему :)Согласен, данная подтема официально закрыта :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707064
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan Blackjclassпропущено...

Не обязательно. Правильные пацаны обычно обосновывают свой ответ ;)

"расширение свойств и поведения класса" это наследование с соблюдением LSP. Можно реализовать наследование не соблюдая LSP.
Соостветсвенно:
наследование - это "не обязательно" "расширение свойств и поведения класса".
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707080
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz"расширение свойств и поведения класса" это наследование с соблюдением LSP. Можно реализовать наследование не соблюдая LSP.
Соостветсвенно:
наследование - это "не обязательно" "расширение свойств и поведения класса".Да, вот и получаются в результате такого наследования из ножей танки :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707198
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Dan Black!

> Кроме того, моя цель была не написать полное описание термина
> наследования, так что хотелось бы в контексте "интерфейс - это костыль в
> отсутствии множественного наследования." что-нибудь услышать.

Что услышать? При наличии множественного наследования интерфейс как
языковая сущность не нужен. Бритвой отрезает.
Понятие "класс" включает в себя интерфейс.

PS: интерфейсы в смысле COM немного не в тему.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем разница между абстрактным классом и интерфейсом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]