: 많은 클래스들이 동일한 속성과 메서드를 가지고 있을 경우 호출한 쪽에서는 현재 사용중인 개체가 어느 클래스를 기반으로 하고 있는지 알필요가 없다.
ㅇ. 다형성을 이용한 클래스 작성 접근방법
-. 인터페이스(Interface) 기반
: 기존의 VB6.0에서 사용
: 클래스 안에서 인터페이스 멤버를 구현한다.
- Interface키워드를 사용하여 인터페이스 정의
- Implements 키워드를 사용
: Overloads 키워드 사용 가능
형식)
Interface tmpInterface
Function Method1(ByRef s As String) As Boolean
Overloads Sub Method2()
Overloads Sub Method2(ByVal i As Integer)
End Interface
Ex)
Property LastName() As String
Sub Display()
End Interface
Class Emp
Implements iPerson
Private strName As String
Private strCompant As String
Public Sub Display() Implements iPerson.Display
MsgBox(LastName & " " & strCompant, , "Employee")
End Sub
Public Property LastName() As String Implements iPerson.LastName
Get
Return strName
End Get
Set(ByVal Value As String)
End Set
End Property
Public Property Company() As String
Get
End Get
Set(ByVal Value As String)
End Set
End Property
End Class
Dim perPerson As Iperson, empEmp As New Emp
empEmp.Company = "Company Name"
perPerson = empEmp
perPerson.LastName = "Yoo"
perPerson.Display()
empEmp.Display()
-. 상속(Inheritance)을 기반
: VB.NET에 새롭게 추가됨
: 베이스 클래스에서 메서드를 작성
: 파생된 클래스에서 오버라이딩
Ex)
상속을 이용한 클래서 두어개 만들고..
서브루틴 함수 호출해만서 클래스변수를 넘겨 주면..
해당 루틴안에서 어떤 클래스건 상관없이 공통의 메소드를 실행시켜 준다는 건데..
예제가 좀 기네..
사실.. 별거 아닌듯..
인터페이스를 기반으로 한거나.. 상속을 기반으로 한거나...
설명이 간단해서 그런가..
동영상 강좌로 공부하고 있는데..
별거 없지 싶은.. 쩝..
말만 너무 어려워서.. 쯧... -_-++