interface in Java

myrka68

может ли интерфейс в яве содержать в себе что-нить отличное от прототипов функций?
переменные, например

Dasar

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

myrka68

вот отстой
жаль, что и множественного наследования нет
вывод: ява -- убожество
спасибо за ответ

Dasar

Со множественным наследованием еще не научились эффективно "бороться".
В том же C++, как только начинается динамическое преобразование типов, так множественное наследование сразу вылазит в виде огромных граблей.

krishtaf

множественное наследование есть
в виде множественого наследования интерфейсов, что концептуально не ограничивает жабу.

myrka68

про "+" и "-" множественного наследования можно много спорить, мне оно нравится
а вопрос был к тому, что мне сейчас нужно сделать фичу, которая при использовании множественного наследнования делается нахаляву, иначе приходится немного пересматривать структуру и организацию объектов

myrka68

в интерфейсах нет переменных, поэтому их использование не полностью заменяет множественное наследование

Dasar

Один раз пишешь, или берешь готовый генератор кода, который поддерживает паттерн "подключение реализаций",

krishtaf

а что мешает завернуть переменную в метод ?
тем более что это правильнее и для С++ в том числе.
PS
не хочется развязывать хуливойны и не буду

6yrop

ява -- убожество

эт точно
в С# есть свойства, и интерфейсы их могут содержать
правда за Java-у сейчас много денег платят..........

stm7481822

public interface Const {
final static String STYLES_CSS = "main.css";
final static String CSS_DIR = "css/";
final static String JS_DIR = "js/";
final static String IMAGES_DIR = "images/";
}
Что за чушь, что интерфейс не может содержать переменных?

Marinavo_0507

Типа это не переменные.
У переменных значения могут меняться, как следует из названия

voronetskaya

ну убери из его примера слово final - получишь "переменные"

myrka68

статическая переменная -- это неполноценная переменная
а константа - это вообще фигня
поэтому эти варианты не катят

vladimir021975

Не получишь - в интерфейсах только константы и сигнатуры методов.

voronetskaya

"множественное наследование" неабстрактных классов в джаве делается через внутренние классы.

vladimir021975

А зачем переменные? Какая задача?

myrka68

да задача уже давно решена
просто хотел нахаляву -- множественное наследование и типа всё
в результате пришлось немного пересмотреть сами классы и вычленить ещё несколько промежуточных, таким образом проблема решилась

voronetskaya

ну напиши сам контрпример, если не веришь

voronetskaya

статическая переменная -- это неполноценная переменная
это лол
критерий "полноцености" переменной, пожалуйста
а заодно и само определение "переменной", если можно

myrka68

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

bastii

а зачем в интерфейсах переменные?

vladimir021975

Константы. Только они имеют смысл, да и то далеко не всегда.
Оставить комментарий
Имя или ник:
Комментарий: