[Java] Вложенные вдруг друга интерфейсы?
плюс: не засоряется пространство имен, особенно это удобно, если предполагается, что внутренний интерфейс, напрямую, использоваться не будет.
а как он может использоваться не напрямую?
interface ICar
{
string Color {get;}
ICarDriver Driver {get;}
interface ICarDriver
{
string Name {get;}
int Id {get;}
}
}
предполагается, что обычно нам не нужно создавать переменную типа ICarDriver, и что в основном будут использоваться следующие обращения:
ICar car = GetMyCar;
WriteLine (car.Driver.Name);
А разве можно пользоваться не статическими переменными из интерфейса, не через класс (если интерфейс имплементирован в классе)
> не через класс
что значит не через класс?
а через класс это
Class C implements I
{
}
Interface I
{
string foo;
}
В приведенном мною примере, считается, что кто-то где-то написал класс, который реализует интерфейс ICar.
и функция GetMyCar как раз возвращает экземпляр данного класса.
ps
При так называемой plugin-ной системе - класс, реализующий ICar может быть написан много позже, чем основная программа, и другими людьми. а функция GetMyCar тогда будет уметь динамически подгружать такие классы.
а ICarDriver имплементируется где-нибудь?
Да, тоже имплементируется.
Оставить комментарий
irina-sokolov
недавно увидел, как интерфейс определяется в интерфейсе.Кто-нибудь может это
1 прокомментировать
2 объяснить, чем это хорошо
Так сказать, не понимаю смысла, плюсов и минусов.