Interface Inherits another Interface : Interface « Class « VB.Net

Interface Inherits another Interface

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( )
                 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( )
                 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( )
                 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
                 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

1.One Class implements two Interfaces which have the same name methodOne Class implements two Interfaces which have the same name method
2.Interface inherits interfaceInterface inherits interface
3.Class implements two interfaces
4.Implements an InterfaceImplements an Interface
5.Implement an InterfaceImplement an Interface
6.Define and use Interface AgeDefine and use Interface Age
7.Define and use InterfaceDefine and use Interface
8.Implements Two InterfacesImplements Two Interfaces
9.Generic Class and InterfaceGeneric Class and Interface