ㅇ. 이미 존재하는 클래서(Base Class)로 부터 새로은 클래서(Derived Class)를 만들기 위해 사용.
ㅇ. 파생된 클래서에서는 속성, 메서드, 이벤트, 필드, 이벤트 핸들러등을 그대로 혹은 새롭게 정의해서 사용 가능
ㅇ. 한 프로젝트 내에서 다른 클래서로부터 혹은 프로젝트에서 찹조하고 있는 개체로부터 상속 가능
ㅇ. Single Inheritance만 지원 : 하나의 Base Class로 부터 파생 : Multiple Inheritance는 지원 안됨
ㅇ. 상속을 사용하는 경우 : 하위 레벨 API를 단순화 할 때 : 베이스 클래스의 코드 재사용 시 : 클래스의 계층 구조가 깊지 않을 때 : 베이스 클래스를 통해 파생된 클래스를 변경할 때
ㅇ. Inheritance를 위해 제공되는 modifier : Inherits (클래스에만 사용) : NotInheritable (상속할수 없는, Base Class가 될 수 없는) : MustInherit (추상적인 클래스, 반드시 상속해서 파생시켜야만 하는 클래스)
ㅇ. 속성과 메서드 오버라딩 하기 : 파생된 클래스 안에서 속성이나 메서드에 대한 구현을 재정의 함 : 변경자(Modifier) - Overridable (Base Class) - Overrides (Derived Class) - NotOverridalbe (Base Class) - MustOverride (Base Class) : MustOverride로 지정된 메서드를 가지고 있는 클래스는 반드시 MustInherit 로 지정되어 있어야 한다.
Ex)
Public Class Class3
Sub Method1() MessageBox.Show("Class3 method1!!") End Sub
Overridable Sub Method2() MessageBox.Show("Class3 Method2!!") End Sub End Class
Public Class Class2 Inherits Class3
Overrides Sub Method2() MessageBox.Show("Class2 MEthod2!!") End Sub End Class
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Dim C1 As New Class3 Dim C2 As New Class2