2009-04-07 29 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