从接口或实现接口继承?

时间:2012-03-12 13:47:26

标签: c# oop interface

我有这样的界面:

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

myservice class Impliment IService接口; 如果我说那个

  

myservice类从IService继承

是不是错了?

如果错误的原因是多重继承我们有这个定义:

  

多重继承是一些面向对象的计算机编程语言的一个特性,其中一个类可以继承行为和   来自多个超类的功能。

     

支持多重继承的语言包括:C ++,Common Lisp   (通过CLOS),EuLisp(通过EuLisp对象系统TELOS),Curl,Dylan,   Eiffel,Logtalk,Object REXX,Scala(通过使用mixin类),   OCaml,Perl,Perl 6,Python和Tcl(通过增量Tcl)。1

     

一些面向对象的语言,如C#,Java和Ruby实现   单继承虽然是协议,但“接口”提供了一些   真正的多重继承的功能.. multiple inheritance

如果界面提供多个  继承...我可以说我从接口继承... ...

5 个答案:

答案 0 :(得分:5)

课程 实施 interfaces

继承 其他非sealed的类。

根据定义,接口没有实现,因此没有继承的行为。另一方面,类可以具有实现,因此区别。

答案 1 :(得分:0)

是的 - 说myservice继承自IService

是错误的

答案 2 :(得分:0)

从其他类继承实现接口。

但是你可以构造从其他接口继承的接口:

interface IService
{
    void SomeServiceMethod();
}

interface IService2 : IService
{
    void SomeServiceMethod2();
}

最终,它是一个始终提供接口方法实现的类。

答案 3 :(得分:0)

不是真的。正如接口概念所说,如果任何类想要使用特定接口,那么他需要实现所有这些方法,并且是的。对于这个语句,有一个地铁,如果任何特定类不希望实现所有接口方法他可以将他的类声明为抽象类。

简而言之,一个类实现了接口和

类继承其他父类的属性。 (例如,对于java)

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


class A implements IService{

void Method1(){

}
void Method2(){

}

}

Abstract class B implements IService{
    void Method2(){

    }
    }

答案 4 :(得分:0)

我向自己解释的方式:

父 - 子类有关系,所以它是继承。 child继承了所有父功能。

接口只是一个契约:孩子假装看起来像IServiceClass,但不会继承任何功能,因为IServiceClass没有任何功能。因此实施。

你需要记住的其中一件事:)

前一段时间有一个愚蠢的采访问题:“抽象类和接口之间有什么区别?”......去图