繼承接口我想實現在一個類中派生接口。我的界面和類與以下類似。命名空間涉及到持有這些接口和類不同的項目:實現與重載成員vb.net
Namespace ns1
Public Interface IParent
Function myFunction() As Double
End Interface
End ns1
Namespace ns2
Public Interface IDerived
Inherits ns1.IParent
Overloads/Shadows Function myFunction(ByRef myObject as Object) As Double
End Interface
End ns2
Namespace ns3
Public Class myClass
Implements ns2.IDerived
Public Function myFunction(ByRef obj as Object) As Double Implements ns2.IDerived.myFunction
End Function
End ns3
在派生的接口,我試圖重載函數的方式,當我實現派生的接口,我只需要執行函數,如同在上面的「myClass」中的代碼一樣。但是,我收到一個錯誤,說我還必須從父接口(使用空參數列表)實現函數。無論我在派生接口中使用Overloads還是Shadows函數,都存在錯誤 - 都會導致錯誤。
反正有沒有做到我想做的事 - 在我的課只實現派生的接口的功能 - 使用接口?如果沒有辦法使用接口,任何人都可以提出一種替代方法嗎?我們確實需要使用接口,並試圖避免使用類。也就是說,抽象類我允許我們做所有我們需要做的事情。
我讀了大量的信息在所有被這個問題是每一個概念所涉及的主題是非常基本的,並很好地覆蓋在線幫助。但是,我沒有發現任何我認爲是解決具體問題的直接解決方案。
在此先感謝您的幫助。
不,不是錯字。我想重載繼承的方法從派生的父母;這是由於接口所在的不同項目以及每個項目的最終用途所致。簡而言之,ns1項目是ns2項目在特定場景中使用的通用項目。但是,由於ns1也在與ns2不相關的其他場景中使用,我們將它們分開。謝謝回覆。 – llc381
所以會發生什麼是完全可以預料的:你不能只丟掉接口的一部分,因爲使用接口**的代碼需要一個給定的合約**,你必須遵守。如果您永遠不會執行此合約,則可以使用常用的「未實施」模式動態地將其明確地向接口用戶**。我會用樣本更新我的答案。 :) – Pragmateek
好點 - 我們熟悉NotImplementedException :)。我希望接口被處理,以便在派生接口中聲明函數爲「Overloads」或「Shadows」將有效地隱藏基接口函數,並允許我僅使用派生接口函數。當獨角獸回家時,我會再試一次)。在此之前,我只能接受它。我們可能會使用顯式的NotImplementedException - 謝謝您提供簡單(st)解決方案! – llc381