2012-03-12 86 views
0

我有一個這樣的接口:繼承界面還是Impliment界面?

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

爲MyService類Impliment IService接口; 如果我說,從IService

爲MyService類繼承

是錯?

如果錯了,爲什麼多繼承,我們有這樣的定義:

多重繼承是其中一類可以繼承行爲,從一個以上的超 功能的一些面向對象的計算機編程語言的一個特徵。

支持多重繼承的語言包括:C++,Common Lisp的 (通過CLOS),EuLisp(經由EuLisp對象系統TELOS),捲曲,迪倫, 艾菲爾,Logtalk,對象REXX,Scala中(通過使用混入的類), OCaml,Perl,Perl 6,Python和Tcl(通過Incremental Tcl)。 1

一些面向對象的語言,如C#,Java和Ruby的實現 單繼承,儘管協議,或「接口」,提供真正的多重繼承的一些功能 ..multiple inheritance

如果接口提供多個 繼承......我可以說我從一個接口... 繼承...

+0

想想吧,它會從接口繼承什麼?在接口中沒有定義實現!他們只是合同。 – 2012-03-12 13:55:30

+1

狒狒 - 你繼承合同。就像抽象方法一樣。 – 2012-03-12 14:00:19

+1

從'C++'中提出同樣問題的人的更詳細的解釋仍然適用於'C#':http://stackoverflow.com/questions/3774204/difference-between-interface-inheritance-and-implementation-inheritance #answer-3774277 – xandercoded 2012-03-12 14:11:31

回答

5

工具interfaces

繼承其他類不屬於sealed

接口根據定義沒有實現,因此沒有行爲繼承。另一方面,類可以有有實現,因此區別。

0

是 - 這是錯誤的說法爲MyService從IService

+0

爲什麼?它具有很多遺傳特徵。 – 2012-03-12 13:59:34

+0

但是,不是接口實現「實現」而不是「繼承」的廣爲接受的術語? 「繼承」作爲術語是(至少對我有限的知識)與類繼承有關而不是接口實現。這兩個抽象概念是不是分開的?(Interface:has-A,Inheritance:Is-A)。 – Alex 2012-03-12 14:05:27

+0

@Alex接口仍然是Is-A關係。如果MyClass實現了IService,那麼準確地說MyClass是一個IService,因爲任何期望一個IService都會接受一個MyClass。遏制是一種Has-A關係。 – 2012-03-12 14:31:16

0

從另一個類繼承實現接口繼承。

但是你可以構建從其他接口繼承接口:

interface IService 
{ 
    void SomeServiceMethod(); 
} 

interface IService2 : IService 
{ 
    void SomeServiceMethod2(); 
} 

雖然最終,那就是總是提供的接口方法的實現類。

0

不是。正如接口概念所說的,如果任何類想要使用特定的接口,那麼他需要實現所有這些方法,並且是對於此語句,有一個地鐵,如果任何特定的類不希望實現接口的所有方法他可以將他的類聲明爲Abstract類。

所以總之一類實現接口和

類繼承其他父類的屬性。 (在Java中的案例)

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


class A implements IService{ 

void Method1(){ 

} 
void Method2(){ 

} 

} 

Abstract class B implements IService{ 
    void Method2(){ 

    } 
    } 
0

我對自己解釋的方式:

父 - 子類都有關係,所以它是繼承。孩子繼承所有的父功能。但是接口不過是一個契約:孩子假裝看起來像是IServiceClass,但沒有繼承任何功能,因爲IServiceClass沒有任何功能。因此實現。

之一那些你需要記住:)

前一段時間有愚蠢的面試問題的東西:「什麼是抽象類的區別接口」 ......去圖