Language Basics VB.Net

Imports System
Public Class MainClass
    Shared Sub Main(ByVal args As String())
        Dim doc As New Document("Test Document")
        ' only cast if it is safe
        If TypeOf doc Is IStorable Then
            Dim isDoc As IStorable = doc
            isDoc.Read( )
        Else
            Console.WriteLine("Could not cast to IStorable")
        End If
        ' this test will fail
        If TypeOf doc Is ICompressible Then
            Dim icDoc As ICompressible = doc
            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
  ' here's the new interface
  Interface ICompressible
      Sub Compress( )
      Sub Decompress( )
  End Interface 'ICompressible
  ' Document implements both interfaces
  Public Class Document
      Implements IStorable
      ' the document constructor
      Public Sub New(ByVal s As String)
          Console.WriteLine("Creating document with: {0}", s)
      End Sub 'New
      ' implement IStorable
      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 Status
          End Get
          Set(ByVal Value As Integer)
              Status = Value
          End Set
      End Property
      ' hold the data for IStorable's Status property
      Private myStatus As Integer = 0
  End Class 'Document