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
Related examples in the same category