Oop 如何构造此接口/继承 我有一个文件类,它有一个 Open()方法 我有一个子类 名为TextFile的文件 实现一个IReadableFile 接口,它需要 Read()方法的实现

Oop 如何构造此接口/继承 我有一个文件类,它有一个 Open()方法 我有一个子类 名为TextFile的文件 实现一个IReadableFile 接口,它需要 Read()方法的实现,oop,inheritance,interface,Oop,Inheritance,Interface,如果将变量myFile声明为IReadableFile,则无法对其调用Open()方法。我希望能够立即使用TextFile的基类(File)方法及其接口(IReadableFile)方法的功能。这可能吗 编辑:我在VB.NET中工作(如果这很重要的话) 我试图通过一个文件类提供一组最少的文件I/O功能,然后通过从文件派生并添加一些附加方法(如读、写等),为特定类型的文件提供扩展功能。我希望派生类是多态的-例如,对TextFile调用Write方法只会将文本数据写入文件系统,而对BinaryFil

如果将变量
myFile
声明为
IReadableFile
,则无法对其调用
Open()
方法。我希望能够立即使用
TextFile
的基类(
File
)方法及其接口(
IReadableFile
)方法的功能。这可能吗

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


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

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

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

只有在IReadableFile中放入Open()或将IReadableFile强制转换为文本文件时,才有可能


有关您正在执行的操作的更多详细信息可能会有所帮助。

只有在IReadableFile中放入Open()或将IReadableFile强制转换为文本文件时,才有可能


有关您正在执行的操作的更多详细信息可能会有所帮助。

您可以将myFile声明为TextFile对象。然后,您将能够调用Read(从继承的文件对象)和Open(从实现的IFileReadable接口)


您可以将myFile声明为TextFile对象。然后,您将能够调用Read(从继承的文件对象)和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