Interface Inherits another Interface
Imports System Public Class MainClass Shared Sub Main(ByVal args As String()) Dim doc As New Document("Test Document") If TypeOf doc Is IStorable Then Dim isDoc As IStorable = doc isDoc.Read( ) Else Console.WriteLine("Could not cast to IStorable") End If If TypeOf doc Is ICompressible2 Then Dim ilDoc As ICompressible2 = doc Console.Write("Calling both ICompressible and ") Console.WriteLine("ICompressible2 methods...") ilDoc.Compress( ) ilDoc.LogSavedBytes( ) Else Console.WriteLine("Could not cast to ICompressible2") End If If TypeOf doc Is ICompressible Then Dim icDoc As ICompressible = doc ' Console.WriteLine( _ "Treating the object as Compressible... ") icDoc.Compress( ) Else Console.WriteLine("Could not cast to ICompressible") End If End Sub End Class Interface IStorable Sub Read( ) Sub Write(ByVal obj As Object) Property Status( ) As Integer End Interface 'IStorable Interface ICompressible Sub Compress( ) Sub Decompress( ) End Interface 'ICompressible Interface ICompressible2 Inherits ICompressible Sub LogSavedBytes( ) End Interface 'ICompressible2 Public Class Document Implements ICompressible2, IStorable Public Sub New(s As String) Console.WriteLine("Creating document with: {0}", s) End Sub 'New Public Sub Read( ) Implements IStorable.Read Console.WriteLine("Implementing the Read Method for IStorable") End Sub 'Read Public Sub Write(ByVal o As Object) Implements IStorable.Write Console.WriteLine("Implementing the Write Method for IStorable") End Sub 'Write Public Property Status( ) As Integer Implements IStorable.Status Get Return myStatus End Get Set(ByVal Value As Integer) myStatus = Value End Set End Property ' implement ICompressible Public Sub Compress( ) Implements ICompressible.Compress Console.WriteLine("Implementing Compress") End Sub 'Compress Public Sub Decompress( ) Implements ICompressible.Decompress Console.WriteLine("Implementing Decompress") End Sub 'Decompress ' implement ICompressible2 Public Sub LogSavedBytes( ) Implements ICompressible2.LogSavedBytes Console.WriteLine("Implementing LogSavedBytes") End Sub 'LogSavedBytes ' hold the data for IStorable's Status property Private myStatus As Integer = 0 End Class 'Document