如何构造此接口/继承

时间:2009-04-07 18:01:48

标签: oop inheritance interface

  • 我有一个File课程 Open()方法。
  • 我有一个子类 被称为File的{​​{1}} 实现TextFile 接口,这需要 实施IReadableFile方法。

如果我将变量Read()声明为myFile,我就无法在其上调用IReadableFile方法。我希望能够同时使用Open()的基类(TextFile)方法及其接口(File)方法的功能。这可能吗?

编辑:我在VB.NET工作(如果重要的话)。

我试图通过File类提供一组最小的文件I / O功能,然后通过从File派生并添加一些其他方法(如Read,Write等)为特定类型的文件提供扩展功能。 。我希望派生类是多态的 - 例如,在TextFile上调用Write方法只会将文本数据写入文件系统,而在BinaryFile上调用Write方法可能会在将二进制数据写入文件系统之前对其进行编码。

3 个答案:

答案 0 :(得分:4)

创建一个IFile接口,使File类实现IFile。 IReadableFile将继承自IFile。

答案 1 :(得分:0)

只有在IReadableFile中放置Open()或将IReadableFile转换为TextFile时才有可能。

有关您正在做的事情的更多细节可能有所帮助。

答案 2 :(得分:0)

您可以将myFile声明为文本文件对象。然后,您将能够调用Read(来自继承的File对象)和Open(来自已实现的IFile Readable接口)。

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