VB.NET 2008/VB - 개체지향

개체지향 - 상속(Inherit) 기능

본클라쓰 2011. 4. 15. 09:39

 

Visual Basic에서는 파생 클래스의 기본 클래스로 사용되는 클래스를 정의할 수 있는 상속 기능을 지원한다. 파생 클래스는 기본 클래스의 속성, 메서드 및 이벤트를 상속하고 확장할 수 있다. 파생 클래스는 또한 상속된 메서드를 새 구현으로 재정의할 수도 있다. 기본적으로 Visual Basic에서 만든 모든 클래스는 상속할 수 있다.

 

상속을 사용하면 클래스를 한번 작성하고 디버깅한 다음 해당 코드를 새 클래스의 기본으로 반복해서 다시 사용할 수 있다. 또한 상속을 기반으로 하는 다형성을 사용할 수 있다. 이 기능을 사용하면 런타임에 클라이언트 코드에서 교체해서 사용할 수 있으며 기능적으로 다르지만 동일한 이름의 메서드 또는 속성을 갖는 클래스를 정의할 수 있다.

 

 

Inherits 문은 기본 클래스라는 기존 클래스를 기초로 파생 클래스라는 새 클래스를 선언하는 데 사용된다. 파생 클래스는 기본 클래스에 정의된 속성, 메서드, 이벤트, 필드 및 상수르르 상속하고 확장할 수 있다.

 

 

Visual Baisc에서는 클래스에 다음과 같은 클래스 수준 문과 한정자를 제공하여 상속을 지원한다.

  • Inherits 문 : 기본 클래스를 지정한다.
  • NotInheritable 한정자 : 프로그래머가 해당 클래스를 기본 클래스로 사용하지 못하게 한다.
  • MustInherit 한정자 - 해당 클래스가 기본 클래스로만 사용되도록 지정한다.

 

기본적으로 파생 클래스는 해당 기본 클래스에서 속성과 메서드를 상속한다. 상속된 속성이나 메서드가 파생 클래스에서 서로 다르게 동작해야 하는 경우 해당 속성이나 메서드를 재정의 할 수 있다. 즉, 파생 클래스에 해당 메서드의 새로운 구현을 정의할 수 있다. 다음 한정자는 속성 및 메서드가 재정의되는 방식을 제어하는 데 사용된다.

  • Overridable : 클래스의 속성 또는 메서드가 파생 클래스에서 재정의 될 수 있다.
  • Overrides : 기본 클래스에 정의되어 있는 Overridable 속성 또는 메서드를 재정의한다.
  • NotOverridable : 속성 또는 메서드가 상속 클래스에서 재정의되지 않도록 한다. 기본적으로 Public 메서드는 NotOverridable 이다.
  • MustOverride : 파생 클래스에서 속성 또는 메서드를 재정의해야 한다. Mustoverride 키워드가 사용되는 경우 메서드 정의는 Sub, Function 또는 Property 문으로만 구성된다.

 

 

 

Class Class1

 

    Sub Method1()

        MsgBox("This is a method in the base class.")

    End Sub

 

    Overridable Sub Method2()

        MsgBox("This is another method in the base class.")

    End Sub

 

End Class

 

Class Class2

    Inherits Class1

 

    Public Field1 As Integer

 

    Overrides Sub Method2()

        MsgBox("This is a method in a derived class")

    End Sub

 

End Class