<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FClass%2FInterface</id>
		<title>VB.Net/Class/Interface - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FClass%2FInterface"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Class/Interface&amp;action=history"/>
		<updated>2026-04-05T12:26:02Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Class/Interface&amp;diff=356&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Class/Interface&amp;diff=356&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Class/Interface&amp;diff=357&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Class/Interface&amp;diff=357&amp;oldid=prev"/>
				<updated>2010-05-26T12:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Class implements two interfaces==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
        doc.Status = -1&lt;br /&gt;
        doc.Read(  )&lt;br /&gt;
        doc.rupress(  )&lt;br /&gt;
        Console.WriteLine(&amp;quot;Document Status: {0}&amp;quot;, doc.Status)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
     Interface IStorable&lt;br /&gt;
         Sub Read(  )&lt;br /&gt;
         Sub Write(ByVal obj As Object)&lt;br /&gt;
         Property Status(  ) As Integer&lt;br /&gt;
     End Interface&lt;br /&gt;
     Interface ICompressible&lt;br /&gt;
         Sub Compress(  )&lt;br /&gt;
         Sub Decompress(  )&lt;br /&gt;
     End Interface&lt;br /&gt;
     Public Class Document&lt;br /&gt;
         Implements ICompressible, IStorable&lt;br /&gt;
         Public Sub New(ByVal s As String)&lt;br /&gt;
             Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Read(  ) Implements IStorable.Read&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
             Console.WriteLine( _&lt;br /&gt;
               &amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Property Status(  ) As Integer Implements IStorable.Status&lt;br /&gt;
             Get&lt;br /&gt;
                 Return myStatus&lt;br /&gt;
             End Get&lt;br /&gt;
             Set(ByVal Value As Integer)&lt;br /&gt;
                 myStatus = Value&lt;br /&gt;
             End Set&lt;br /&gt;
         End Property&lt;br /&gt;
         Public Sub Compress(  ) Implements ICompressible.rupress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Compress&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Decompress(  ) Implements ICompressible.Decompress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Decompress&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Private myStatus As Integer = 0&lt;br /&gt;
     End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define and use Interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(ByVal args As String())&lt;br /&gt;
        Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
             doc.Status = -1&lt;br /&gt;
             doc.Read( )&lt;br /&gt;
             Console.WriteLine(&amp;quot;Document Status: {0}&amp;quot;, doc.Status)    &lt;br /&gt;
        End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Interface IStorable&lt;br /&gt;
    Sub Read( )&lt;br /&gt;
    Sub Write(ByVal obj As Object)&lt;br /&gt;
    Property Status( ) As Integer&lt;br /&gt;
End Interface &amp;quot;IStorable&lt;br /&gt;
Public Class Document&lt;br /&gt;
    Implements IStorable&lt;br /&gt;
    Public Sub New(ByVal s As String)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
    End Sub &amp;quot;New&lt;br /&gt;
    &amp;quot; implement the Read method&lt;br /&gt;
    Public Sub Read( ) Implements IStorable.Read&lt;br /&gt;
        Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Read&lt;br /&gt;
    &amp;quot; implement the Write method&lt;br /&gt;
    Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
        Console.WriteLine( _&lt;br /&gt;
           &amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Write&lt;br /&gt;
    &amp;quot; implement the property&lt;br /&gt;
    Public Property Status( ) As Integer Implements IStorable.Status&lt;br /&gt;
        Get&lt;br /&gt;
            Return myStatus&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal Value As Integer)&lt;br /&gt;
            myStatus = Value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;quot; store the value for the property&lt;br /&gt;
    Private myStatus As Integer = 0&lt;br /&gt;
End Class &amp;quot;Document&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define and use Interface Age==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main(ByVal args As String())&lt;br /&gt;
      Dim person As New CPerson(&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, 1983)&lt;br /&gt;
      Dim iAgeArray As IAge() = New IAge(1) {}&lt;br /&gt;
      iAgeArray(0) = person&lt;br /&gt;
      iAgeArray(1) = New CPerson(&amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, 1999)&lt;br /&gt;
      Console.WriteLine( person.ToString() &amp;amp; &amp;quot;: &amp;quot; &amp;amp; _&lt;br /&gt;
         person.Name &amp;amp; vbCrLf &amp;amp; &amp;quot;Age is &amp;quot; &amp;amp; person.Age )&lt;br /&gt;
      Dim ageReference As IAge&lt;br /&gt;
      For Each ageReference In iAgeArray&lt;br /&gt;
         Console.WriteLine( ageReference.Name &amp;amp; &amp;quot;: &amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;Age is &amp;quot; &amp;amp; ageReference.Age )&lt;br /&gt;
      Next&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Interface IAge&lt;br /&gt;
   ReadOnly Property Age() As Integer&lt;br /&gt;
   ReadOnly Property Name() As String&lt;br /&gt;
End Interface&lt;br /&gt;
Public Class CPerson&lt;br /&gt;
   Implements IAge&lt;br /&gt;
   Private mYearBorn As Integer&lt;br /&gt;
   Private mFirstName As String&lt;br /&gt;
   Private mLastName As String&lt;br /&gt;
   Public Sub New(ByVal firstNameValue As String, _&lt;br /&gt;
      ByVal lastNameValue As String, _&lt;br /&gt;
      ByVal yearBornValue As Integer)&lt;br /&gt;
      mFirstName = firstNameValue&lt;br /&gt;
      mLastName = lastNameValue&lt;br /&gt;
      If (yearBornValue &amp;gt; 0 AndAlso _&lt;br /&gt;
         yearBornValue &amp;lt;= Date.Now.Year) Then&lt;br /&gt;
         mYearBorn = yearBornValue&lt;br /&gt;
      Else&lt;br /&gt;
         mYearBorn = Date.Now.Year&lt;br /&gt;
      End If&lt;br /&gt;
   End Sub&lt;br /&gt;
   ReadOnly Property Age() As Integer _&lt;br /&gt;
      Implements IAge.Age&lt;br /&gt;
      Get&lt;br /&gt;
         Return Date.Now.Year - mYearBorn&lt;br /&gt;
      End Get&lt;br /&gt;
   End Property&lt;br /&gt;
   ReadOnly Property Name() As String _&lt;br /&gt;
      Implements IAge.Name&lt;br /&gt;
      Get&lt;br /&gt;
         Return mFirstName &amp;amp; &amp;quot; &amp;quot; &amp;amp; mLastName&lt;br /&gt;
      End Get&lt;br /&gt;
   End Property&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Generic Class and Interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Imports System.Collections.Generic&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Public Shared Sub Main()&lt;br /&gt;
        Dim aCat As New Talker(Of Cat)(New Cat())&lt;br /&gt;
        Dim aDog As New Talker(Of Dog)(New Dog())&lt;br /&gt;
        aCat.TalkIt()&lt;br /&gt;
        aDog.TalkIt()&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Interface ITalker&lt;br /&gt;
    Sub Talk()&lt;br /&gt;
End Interface&lt;br /&gt;
Public Class Talker(Of T As ITalker)&lt;br /&gt;
    Dim talkerItem As T&lt;br /&gt;
    Public Sub New(ByVal shooterItem As T)&lt;br /&gt;
        Me.talkerItem = shooterItem&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub TalkIt()&lt;br /&gt;
        Me.talkerItem.Talk()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class Dog&lt;br /&gt;
    Implements ITalker&lt;br /&gt;
    Public Sub Talk() Implements ITalker.Talk&lt;br /&gt;
        Console.Out.WriteLine(&amp;quot;Dog-&amp;gt;Talk&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class Cat&lt;br /&gt;
    Implements ITalker&lt;br /&gt;
    Public Sub Talk() Implements ITalker.Talk&lt;br /&gt;
        Console.Out.WriteLine(&amp;quot;Cat-&amp;gt;Talk&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implement an Interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
  Shared Sub Main()&lt;br /&gt;
    Dim e1 As New Programmer(&amp;quot;E1&amp;quot;, 50000)&lt;br /&gt;
    Dim e2 As New Employee(&amp;quot;E2&amp;quot;, 40000)&lt;br /&gt;
    &lt;br /&gt;
    Dim theTeam As Employee() = {e1, e2}&lt;br /&gt;
    &lt;br /&gt;
    e1.MyTeam = theTeam&lt;br /&gt;
    &lt;br /&gt;
    Console.WriteLine(e1.Rate(e2))&lt;br /&gt;
    &lt;br /&gt;
  End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Interface ILead&lt;br /&gt;
  Sub SpendMoraleFund(ByVal amount As Decimal)&lt;br /&gt;
  Function Rate(ByVal aPerson As Employee) As String&lt;br /&gt;
  Property MyTeam() As Employee()&lt;br /&gt;
  Property MoraleFund() As Decimal&lt;br /&gt;
End Interface&lt;br /&gt;
Public Class Programmer&lt;br /&gt;
  Inherits Employee&lt;br /&gt;
  Implements ILead&lt;br /&gt;
  Private m_MoraleFund As Decimal&lt;br /&gt;
  Private m_MyTeam As Employee()&lt;br /&gt;
  Public Function Rate(ByVal aPerson As Employee) As String _&lt;br /&gt;
  Implements ILead.Rate&lt;br /&gt;
    Return aPerson.TheName &amp;amp; &amp;quot; rating to be done&amp;quot;&lt;br /&gt;
  End Function&lt;br /&gt;
  Public Property MyTeam() As Employee() _&lt;br /&gt;
  Implements ILead.MyTeam&lt;br /&gt;
    Get&lt;br /&gt;
      Return m_MyTeam&lt;br /&gt;
    End Get&lt;br /&gt;
    Set(ByVal Value As Employee())&lt;br /&gt;
      m_MyTeam = Value&lt;br /&gt;
    End Set&lt;br /&gt;
  End Property&lt;br /&gt;
  Public Sub SpendMoraleFund(ByVal amount As Decimal) _&lt;br /&gt;
  Implements ILead.SpendMoraleFund&lt;br /&gt;
    &amp;quot;spend some money&lt;br /&gt;
    Console.WriteLine(&amp;quot;Spent &amp;quot; &amp;amp; amount.ToString())&lt;br /&gt;
  End Sub&lt;br /&gt;
  Public Property OurMoraleFund() As Decimal Implements ILead.MoraleFund&lt;br /&gt;
    Get&lt;br /&gt;
      Return m_MoraleFund&lt;br /&gt;
    End Get&lt;br /&gt;
    Set(ByVal Value As Decimal)&lt;br /&gt;
      m_MoraleFund = Value&lt;br /&gt;
    End Set&lt;br /&gt;
  End Property&lt;br /&gt;
  Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)&lt;br /&gt;
    MyBase.New(theName, curSalary)&lt;br /&gt;
  End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class Employee&lt;br /&gt;
  Private m_Name As String&lt;br /&gt;
  Private m_Salary As Decimal&lt;br /&gt;
  Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)&lt;br /&gt;
    m_Name = theName&lt;br /&gt;
    m_Salary = curSalary&lt;br /&gt;
  End Sub&lt;br /&gt;
  Public ReadOnly Property TheName() As String&lt;br /&gt;
    Get&lt;br /&gt;
      Return m_Name&lt;br /&gt;
    End Get&lt;br /&gt;
  End Property&lt;br /&gt;
  Public ReadOnly Property Salary() As Decimal&lt;br /&gt;
    Get&lt;br /&gt;
      Return MyClass.m_Salary&lt;br /&gt;
    End Get&lt;br /&gt;
  End Property&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implements an Interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
        doc.Status = -1&lt;br /&gt;
        doc.Read()&lt;br /&gt;
        Console.WriteLine(&amp;quot;Document Status: {0}&amp;quot;, doc.Status)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
     Interface IStorable&lt;br /&gt;
         Sub Read()&lt;br /&gt;
         Sub Write(ByVal obj As Object)&lt;br /&gt;
         Property Status() As Integer&lt;br /&gt;
     End Interface &amp;quot;IStorable&lt;br /&gt;
     Public Class Document&lt;br /&gt;
         Implements IStorable&lt;br /&gt;
         Public Sub New(ByVal s As String)&lt;br /&gt;
             Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Read() Implements IStorable.Read&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
             Console.WriteLine( _&lt;br /&gt;
                &amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Property Status() As Integer Implements IStorable.Status&lt;br /&gt;
             Get&lt;br /&gt;
                 Return myStatus&lt;br /&gt;
             End Get&lt;br /&gt;
             Set(ByVal Value As Integer)&lt;br /&gt;
                 myStatus = Value&lt;br /&gt;
             End Set&lt;br /&gt;
         End Property&lt;br /&gt;
         Private myStatus As Integer = 0&lt;br /&gt;
     End Class &amp;quot;Document&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implements Two Interfaces==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(ByVal args As String())&lt;br /&gt;
        Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
        doc.Status = -1&lt;br /&gt;
        doc.Read( )&lt;br /&gt;
        doc.rupress( )&lt;br /&gt;
        Console.WriteLine(&amp;quot;Document Status: {0}&amp;quot;, doc.Status)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Interface IStorable&lt;br /&gt;
    Sub Read( )&lt;br /&gt;
    Sub Write(ByVal obj As Object)&lt;br /&gt;
    Property Status( ) As Integer&lt;br /&gt;
End Interface &amp;quot;IStorable&lt;br /&gt;
&amp;quot; here&amp;quot;s the new interface&lt;br /&gt;
Interface ICompressible&lt;br /&gt;
    Sub Compress( )&lt;br /&gt;
    Sub Decompress( )&lt;br /&gt;
End Interface &amp;quot;ICompressible&lt;br /&gt;
&amp;quot; Document implements both interfaces&lt;br /&gt;
Public Class Document&lt;br /&gt;
    Implements ICompressible, IStorable&lt;br /&gt;
    &amp;quot; the document constructor&lt;br /&gt;
    Public Sub New(ByVal s As String)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
    End Sub &amp;quot;New&lt;br /&gt;
    &amp;quot; implement IStorable&lt;br /&gt;
    Public Sub Read( ) Implements IStorable.Read&lt;br /&gt;
        Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Read&lt;br /&gt;
    Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
        Console.WriteLine( _&lt;br /&gt;
          &amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Write&lt;br /&gt;
    Public Property Status( ) As Integer Implements IStorable.Status&lt;br /&gt;
        Get&lt;br /&gt;
            Return myStatus&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal Value As Integer)&lt;br /&gt;
            myStatus = Value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;quot; implement ICompressible&lt;br /&gt;
    Public Sub Compress( ) Implements ICompressible.rupress&lt;br /&gt;
        Console.WriteLine(&amp;quot;Implementing Compress&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Compress&lt;br /&gt;
    Public Sub Decompress( ) Implements ICompressible.Decompress&lt;br /&gt;
        Console.WriteLine(&amp;quot;Implementing Decompress&amp;quot;)&lt;br /&gt;
    End Sub &amp;quot;Decompress&lt;br /&gt;
    Private myStatus As Integer = 0&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interface Inherits another Interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(ByVal args As String())&lt;br /&gt;
             Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
             If TypeOf doc Is IStorable Then&lt;br /&gt;
                 Dim isDoc As IStorable = doc&lt;br /&gt;
                 isDoc.Read( )&lt;br /&gt;
             Else&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Could not cast to IStorable&amp;quot;)&lt;br /&gt;
             End If&lt;br /&gt;
             If TypeOf doc Is ICompressible2 Then&lt;br /&gt;
                 Dim ilDoc As ICompressible2 = doc&lt;br /&gt;
                 Console.Write(&amp;quot;Calling both ICompressible and &amp;quot;)&lt;br /&gt;
                 Console.WriteLine(&amp;quot;ICompressible2 methods...&amp;quot;)&lt;br /&gt;
                 ilDoc.rupress( )&lt;br /&gt;
                 ilDoc.LogSavedBytes( )&lt;br /&gt;
             Else&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Could not cast to ICompressible2&amp;quot;)&lt;br /&gt;
             End If&lt;br /&gt;
             If TypeOf doc Is ICompressible Then&lt;br /&gt;
                 Dim icDoc As ICompressible = doc &amp;quot;&lt;br /&gt;
                 Console.WriteLine( _&lt;br /&gt;
                    &amp;quot;Treating the object as Compressible... &amp;quot;)&lt;br /&gt;
                 icDoc.rupress( )&lt;br /&gt;
             Else&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Could not cast to ICompressible&amp;quot;)&lt;br /&gt;
             End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
     Interface IStorable&lt;br /&gt;
         Sub Read( )&lt;br /&gt;
         Sub Write(ByVal obj As Object)&lt;br /&gt;
         Property Status( ) As Integer&lt;br /&gt;
     End Interface &amp;quot;IStorable&lt;br /&gt;
     Interface ICompressible&lt;br /&gt;
         Sub Compress( )&lt;br /&gt;
         Sub Decompress( )&lt;br /&gt;
     End Interface &amp;quot;ICompressible&lt;br /&gt;
     Interface ICompressible2&lt;br /&gt;
         Inherits ICompressible&lt;br /&gt;
     Sub LogSavedBytes( )&lt;br /&gt;
    End Interface &amp;quot;ICompressible2&lt;br /&gt;
    Public Class Document&lt;br /&gt;
         Implements ICompressible2, IStorable&lt;br /&gt;
         &lt;br /&gt;
         Public Sub New(s As String)&lt;br /&gt;
            Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
         End Sub &amp;quot;New&lt;br /&gt;
         Public Sub Read( ) Implements IStorable.Read&lt;br /&gt;
            Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub &amp;quot;Read&lt;br /&gt;
         Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub &amp;quot;Write&lt;br /&gt;
         Public Property Status( ) As Integer Implements IStorable.Status&lt;br /&gt;
             Get&lt;br /&gt;
                 Return myStatus&lt;br /&gt;
             End Get&lt;br /&gt;
             Set(ByVal Value As Integer)&lt;br /&gt;
                 myStatus = Value&lt;br /&gt;
             End Set&lt;br /&gt;
         End Property&lt;br /&gt;
         &amp;quot; implement ICompressible&lt;br /&gt;
         Public Sub Compress( ) Implements ICompressible.rupress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Compress&amp;quot;)&lt;br /&gt;
         End Sub &amp;quot;Compress&lt;br /&gt;
         Public Sub Decompress( ) Implements ICompressible.Decompress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Decompress&amp;quot;)&lt;br /&gt;
         End Sub &amp;quot;Decompress&lt;br /&gt;
         &amp;quot; implement ICompressible2&lt;br /&gt;
         Public Sub LogSavedBytes( ) Implements ICompressible2.LogSavedBytes&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing LogSavedBytes&amp;quot;)&lt;br /&gt;
         End Sub &amp;quot;LogSavedBytes&lt;br /&gt;
         &amp;quot; hold the data for IStorable&amp;quot;s Status property&lt;br /&gt;
         Private myStatus As Integer = 0&lt;br /&gt;
     End Class &amp;quot;Document&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interface inherits interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim doc As New Document(&amp;quot;Test Document&amp;quot;)&lt;br /&gt;
        If TypeOf doc Is IStorable Then&lt;br /&gt;
            Dim isDoc As IStorable = doc&lt;br /&gt;
            isDoc.Read()&lt;br /&gt;
        Else&lt;br /&gt;
            Console.WriteLine(&amp;quot;Could not cast to IStorable&amp;quot;)&lt;br /&gt;
        End If&lt;br /&gt;
        If TypeOf doc Is ICompressible2 Then&lt;br /&gt;
            Dim ilDoc As ICompressible2 = doc&lt;br /&gt;
            Console.Write(&amp;quot;Calling both ICompressible and &amp;quot;)&lt;br /&gt;
            Console.WriteLine(&amp;quot;ICompressible2 methods...&amp;quot;)&lt;br /&gt;
            ilDoc.rupress()&lt;br /&gt;
            ilDoc.LogSavedBytes()&lt;br /&gt;
        Else&lt;br /&gt;
            Console.WriteLine(&amp;quot;Could not cast to ICompressible2&amp;quot;)&lt;br /&gt;
        End If&lt;br /&gt;
        If TypeOf doc Is ICompressible Then&lt;br /&gt;
            Dim icDoc As ICompressible = doc&lt;br /&gt;
            Console.WriteLine( _&lt;br /&gt;
               &amp;quot;Treating the object as Compressible... &amp;quot;)&lt;br /&gt;
            icDoc.rupress()&lt;br /&gt;
        Else&lt;br /&gt;
            Console.WriteLine(&amp;quot;Could not cast to ICompressible&amp;quot;)&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
     Interface IStorable&lt;br /&gt;
         Sub Read()&lt;br /&gt;
         Sub Write(ByVal obj As Object)&lt;br /&gt;
         Property Status() As Integer&lt;br /&gt;
     End Interface&lt;br /&gt;
     Interface ICompressible&lt;br /&gt;
         Sub Compress()&lt;br /&gt;
         Sub Decompress()&lt;br /&gt;
     End Interface&lt;br /&gt;
     Interface ICompressible2&lt;br /&gt;
         Inherits ICompressible&lt;br /&gt;
         Sub LogSavedBytes()&lt;br /&gt;
     End Interface &lt;br /&gt;
     Public Class Document&lt;br /&gt;
         Implements ICompressible2, IStorable&lt;br /&gt;
         Public Sub New(s As String)&lt;br /&gt;
             Console.WriteLine(&amp;quot;Creating document with: {0}&amp;quot;, s)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Read() Implements IStorable.Read&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing the Read Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Write(ByVal o As Object) Implements IStorable.Write&lt;br /&gt;
             Console.WriteLine( _&lt;br /&gt;
                   &amp;quot;Implementing the Write Method for IStorable&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Property Status() As Integer Implements IStorable.Status&lt;br /&gt;
             Get&lt;br /&gt;
                 Return myStatus&lt;br /&gt;
             End Get&lt;br /&gt;
             Set(ByVal Value As Integer)&lt;br /&gt;
                 myStatus = Value&lt;br /&gt;
             End Set&lt;br /&gt;
         End Property&lt;br /&gt;
         Public Sub Compress() Implements ICompressible.rupress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Compress&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub Decompress() Implements ICompressible.Decompress&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing Decompress&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Public Sub LogSavedBytes() Implements ICompressible2.LogSavedBytes&lt;br /&gt;
             Console.WriteLine(&amp;quot;Implementing LogSavedBytes&amp;quot;)&lt;br /&gt;
         End Sub&lt;br /&gt;
         Private myStatus As Integer = 0&lt;br /&gt;
     End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One Class implements two Interfaces which have the same name method==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
public class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
        Dim c As New Class1()&lt;br /&gt;
        Dim i2 As MySecondInterface&lt;br /&gt;
        c.rumonFunction()&lt;br /&gt;
        i2 = c&lt;br /&gt;
        i2.rumonFunction()&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Interface MyFirstInterface&lt;br /&gt;
    Sub UniqueFunction()&lt;br /&gt;
    Sub CommonFunction()&lt;br /&gt;
End Interface&lt;br /&gt;
Interface MySecondInterface&lt;br /&gt;
    Sub SecondUniqueFunction()&lt;br /&gt;
    Sub CommonFunction()&lt;br /&gt;
End Interface&lt;br /&gt;
Public Class Class1&lt;br /&gt;
    Implements MyFirstInterface&lt;br /&gt;
    Implements MySecondInterface&lt;br /&gt;
    Sub UniqueFunction() Implements MyFirstInterface.UniqueFunction&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub SecondUniqueFunction() Implements MySecondInterface.SecondUniqueFunction&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub CommonFunction() Implements MyFirstInterface.rumonFunction&lt;br /&gt;
        Console.WriteLine(&amp;quot;Common Function on first interface&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub CommonFunctionSecondInterface() Implements MySecondInterface.rumonFunction&lt;br /&gt;
        Console.WriteLine(&amp;quot;Common function on second interface&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>