我一直在試圖理解實際是什麼接口,理論上我已經很好地解釋了這個定義。但是在實際使用它們時,我會想到一些問題。接口的使用,實際的和真實世界的例子
大多數資源定義界面是這樣的:
「An interface is a contract between itself and any class that implements it. This contract states that any class that implements the interface will implement the interface's properties, methods and/or events. An interface contains no implementation, only the signatures of the functionality the interface provides. An interface can contain signatures of methods, properties, indexers & events.」
這是很容易理解的,但我的問題是,如果接口(根據這個定義)某種它們之間的藍圖或合同和類,如果我定義這個接口實際上會發生什麼,
interface ITest {
int SomeTestVariable { set; get;}
int SomeTestMethod();
}
使實現此接口的類以及所有它的方法
class Test: ITest {
int SomeTestvariable { set; get;}
int SomeTestMethod() {
return 1;
}
}
,所有的方法和屬性已經實現,那麼之後我將其刪除。
class Test {
int SomeTestvariable { set; get;}
int SomeTestMethod() {
return 1;
}
}
現在我必須有一個班級使用這個藍圖或合同。那麼在一張紙上寫這張藍圖並製作界面會有什麼不同?
想想如果你有一個簽名'公共布爾RunTest(ITest測試)' –
@AntP的方法會發生什麼,你是非常正確的,實際上這是我的問題,在什麼情況下我需要有這樣的方法。如果您提供示例,我將不勝感激。 – Transcendent
一個接口允許你強制執行許多不同的具體對象,所有這些對象都具有相同的實現。所以當你食用它們時,你可以確保它們的一致性,並且它們可以來自許多不同的地方..現在@Servy的答案將勝過我的; D – paqogomez