2009-04-07 46 views
1
  • 我有一個File類,它有一個 Open()Open()方法。
  • 我有一個子類的File 稱爲TextFile該 實現一個IReadableFile 接口,這需要 實施Read()方法。

如果我聲明一個變量myFileIReadableFile,我不能把它的Open()方法。我希望能夠一次行使TextFile的基類(File)方法及其接口(IReadableFile)方法的功能。這可能嗎?如何構造此接口/繼承

編輯:我正在使用VB.NET(如果那件事)。

我試圖通過File類提供一組文件I/O功能,然後通過從文件派生並添加一些其他方法(如Read,Write等)爲特定類型的文件提供擴展功能。 )。我希望派生類是多態的 - 例如,在TextFile上調用Write方法將簡單地將文本數據寫入文件系統,而在BinaryFile上調用Write方法可能會在將二進制數據寫入文件系統之前進行編碼。

+0

你在用什麼語言工作? – Elie 2009-04-07 18:04:57

回答

4

創建一個IFile接口,使File類實現IFile。 IReadableFile將繼承自IFile。

0

它只有在Open()放入IReadableFile或將IReadableFile強制轉換爲TextFile時纔有可能。

關於你在做什麼的更多細節可能會有所幫助。

0

您可以將myFile聲明爲TextFile對象。然後你可以調用Read(從繼承的File對象)和Open(從實現的IFileReadable接口)。

Public Class File 

    Public Sub Open() 

    End Sub 

End Class 

Public Interface IFileReadable 
    Sub Read() 
End Interface 

Public Class TextFile 
    Inherits File 
    Implements IFileReadable 

    Public Sub Read() Implements IFileReadable.Read 

    End Sub 

End Class 

Public Class Main 

    Public Sub New() 

    Dim oFile As TextFile 
    oFile.Read() 
    oFile.Open() 

    End Sub 

End Class