Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2017, 10:02   #1
ppm51
Пользователь
 
Регистрация: 03.09.2016
Сообщений: 21
По умолчанию классы вложенные в интерфейс

interface inf_cl {
class inc {
}
public class inc_pub {
}
abstract class inc_abs {
}
abstract public class inc_abs_pub {
}
static class inc_stc {
}
static public class inc_stc_pub {
}
abstract static class inc_stc_abs {
}
abstract static public class inc_stc_abs_pub {
}
final class inc_fnl {
}
final public class inc_fnl_pub {
}
static final class inc_fnl_stc {
}
static final public class inc_fnl_stc_pub {
}
}
class inf_cl_check_inc extends inf_cl.inc {
}
class inf_cl_check_inc_pub extends inf_cl.inc_pub {
}
class inf_cl_check_inc_abs extends inf_cl.inc_abs {
}
class inf_cl_check_inc_abs_pub extends inf_cl.inc_abs_pub {
}
class inf_cl_check_inc_stc extends inf_cl.inc_stc {
}
class inf_cl_check_inc_stc_pub extends inf_cl.inc_stc_pub {
}
class inf_cl_check_inc_stc_abs extends inf_cl.inc_stc_abs {
}
class inf_cl_check_inc_stc_abs_pub extends inf_cl.inc_stc_abs_pub {
}
Почему ява2 позволяет наследовать не статические классы, которые объявлены в интерфейсе и как это можно использовать?
ppm51 вне форума Ответить с цитированием
Старый 05.03.2017, 15:19   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от ppm51 Посмотреть сообщение
Почему ява2 позволяет наследовать не статические классы
Потому что они нестатические и не final. Любые такие классы могут быть расширены.

Цитата:
Сообщение от ppm51 Посмотреть сообщение
которые объявлены в интерфейсе и как это можно использовать
Для паттерна стратегия, например.

Код:

abstract class OutputReceiver
{

protected abstract output(string val);

// Изменяя аргумент, можно менять поведение
public OutputReceiver(Concatenator concat){
   concatenator = concat;
}

void outputData(string[] values)
{
    output(concatenator.Join(values));
}


private Concatenator concatenator;

public class Concatenator
{

   public String concat(string[] values)
    {
         StringBuilder b = new StringBuilder();
         for (string s:values) b.append(s);
         return b.toString();
    }

}

}
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вложенные классы maks_IQ Общие вопросы C/C++ 1 09.09.2012 14:39
Вложенные классы an.net C# (си шарп) 1 29.11.2011 12:08
Шаблоны. Вложенные классы. Selestis Общие вопросы C/C++ 2 27.11.2011 16:52
Вложенные классы 3dg_fan Общие вопросы по Java, Java SE, Kotlin 1 16.10.2011 01:43
Вложенные классы. Lunex.08 Общие вопросы C/C++ 6 17.02.2010 12:01