Imports System
Interface Printable
Sub Read( )
Sub Write(ByVal obj As Object)
Property Status( ) As Integer
End Interface 'Printable
Interface Zippable
Sub Zip( )
Sub Unzip( )
End Interface 'Zippable
Interface Zippable2
Inherits Zippable
Sub Email( )
End Interface
Public Class Document
Implements Zippable2, Printable
Public Sub New(s As String)
Console.WriteLine("Creating document with: {0}", s)
End Sub
Public Sub Read( ) Implements Printable.Read
Console.WriteLine("Implementing the Read Method for Printable")
End Sub 'Read
Public Sub Write(ByVal o As Object) Implements Printable.Write
Console.WriteLine( _
"Implementing the Write Method for Printable")
End Sub 'Write
Public Property Status( ) As Integer Implements Printable.Status
Get
Return myStatus
End Get
Set(ByVal Value As Integer)
myStatus = Value
End Set
End Property
Public Sub Zip( ) Implements Zippable.Zip
Console.WriteLine("Implementing Zip")
End Sub
Public Sub Unzip( ) Implements Zippable.Unzip
Console.WriteLine("Implementing Unzip")
End Sub
Public Sub Email( ) Implements Zippable2.Email
Console.WriteLine("Implementing Email")
End Sub
Private myStatus As Integer = 0
End Class 'Document
Class Tester
Shared Sub Main( )
Dim doc As New Document("Test Document")
If TypeOf doc Is Printable Then
Dim isDoc As Printable = doc
isDoc.Read( )
Else
Console.WriteLine("Could not cast to Printable")
End If
If TypeOf doc Is Zippable2 Then
Dim ilDoc As Zippable2 = doc
Console.Write("Calling both Zippable and ")
Console.WriteLine("Zippable2 methods...")
ilDoc.Zip( )
ilDoc.Email( )
Else
Console.WriteLine("Could not cast to Zippable2")
End If
If TypeOf doc Is Zippable Then
Dim icDoc As Zippable = doc '
Console.WriteLine( _
"Treating the object as Zipible... ")
icDoc.Zip( )
Else
Console.WriteLine("Could not cast to Zippable")
End If
End Sub
End Class
Creating document with: Test Document
Implementing the Read Method for Printable
Calling both Zippable and Zippable2 methods...
Implementing Zip
Implementing Email
Treating the object as Zipible...
Implementing Zip