Наследование от интерфейса или интерфейс Impliment? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть такой интерфейс:

   interface  IService
    {
    ....
    }
    public  class myservice:IService
    {
    ...
    }

myservice class Impliment IService interface;если я скажу, что

myservice class Inherit from IService

это неправильно?

если это неправильно, почему для множественного наследования мы имеем это определение:

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

Языки, поддерживающие множественное наследование, включают: C ++Common Lisp (через CLOS), EuLisp (через объектную систему EuLisp TELOS), Curl, Dylan, Eiffel, Logtalk, Object REXX, Scala (через использование классов mixin), OCaml, Perl, Perl 6, Python и Tcl(через Incremental Tcl). 1

Некоторые объектно-ориентированные языки, такие как C #, Java и Ruby, реализуют одиночное наследование, хотя протоколы или «интерфейсы» предоставляют некоторыефункциональности истинного множественного наследования .. множественное наследование

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

Ответы [ 5 ]

5 голосов
/ 12 марта 2012

Классы агрегат interfaces.

Классы наследуют другие классы, которые не sealed.

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

0 голосов
/ 12 марта 2012

Как я объяснил себе:

parent - дочерние классы имеют отношения, поэтому это наследование.child наследует все родительские функции.

интерфейс, однако, является просто контрактом: child притворяется похожим на IServiceClass, но не наследует ни одну из функций, потому что IServiceClass не имеет их.поэтому реализует.

Одна из тех вещей, которые вам нужно запомнить :)

Некоторое время назад был глупый вопрос: «В чем разница между абстрактным классом и интерфейсом?» ... goрисунок

0 голосов
/ 12 марта 2012

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

Короче говоря, класс A реализует интерфейс и

класс наследует свойства от других родительских классов. (Пример для java)

    interface IService
    {
        void Method1();
        void Method2();
    }


class A implements IService{

void Method1(){

}
void Method2(){

}

}

или

Abstract class B implements IService{
    void Method2(){

    }
    }
0 голосов
/ 12 марта 2012

Класс наследует от другого класса, а реализует интерфейсы.

Но вы можете создавать интерфейсы, которые наследуются от других интерфейсов:

interface IService
{
    void SomeServiceMethod();
}

interface IService2 : IService
{
    void SomeServiceMethod2();
}

В конечном счете, это класс, который всегда обеспечивает реализацию методов интерфейса.

0 голосов
/ 12 марта 2012

Да - неправильно говорить, что myservice наследуется от IService

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...