ㅇ. 다형성이란
: 많은 클래스들이 동일한 속성과 메서드를 가지고 있을 경우 호출한 쪽에서는 현재 사용중인 개체가 어느 클래스를 기반으로 하고 있는지 알필요가 없다.

ㅇ. 다형성을 이용한 클래스 작성 접근방법

-. 인터페이스(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)

Interface iPerson
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)
상속을 이용한 클래서 두어개 만들고..
서브루틴 함수 호출해만서 클래스변수를 넘겨 주면..
해당 루틴안에서 어떤 클래스건 상관없이 공통의 메소드를 실행시켜 준다는 건데..
예제가 좀 기네..



사실.. 별거 아닌듯..

인터페이스를 기반으로 한거나.. 상속을 기반으로 한거나...

설명이 간단해서 그런가..

동영상 강좌로 공부하고 있는데..


별거 없지 싶은.. 쩝..

말만 너무 어려워서.. 쯧... -_-++
VB개발만 하다보니.. 개념이 헷갈려서.. 쯧..

ㅇ. 이미 존재하는 클래서(Base Class)로 부터 새로은 클래서(Derived Class)를 만들기 위해 사용.

ㅇ. 파생된 클래서에서는 속성, 메서드, 이벤트, 필드, 이벤트 핸들러등을 그대로 혹은 새롭게 정의해서 사용 가능

ㅇ. 한 프로젝트 내에서 다른 클래서로부터 혹은 프로젝트에서 찹조하고 있는 개체로부터 상속 가능

ㅇ. Array
-. VB6.0
: 배열첨자의 시작은 기본적으로 0
: Option Base문을 이용하여 1부터 시작하도록 지정 가능
: tmpArr(1 to 10) 가능
: 첨자가 0부터 시작하는 경우 Upper Bound +1이다.
Dim tmpArr(20) as Single : 21개의 요소를 가진다.


-. VB.NET
: 배열 첨자는 0부터 시작
: Option Base 문은 지원하지 않는다.
: 배열 참저는 0 ~ 배열크그 -1 이다.
Dim tmpArr(20) as Single : 20개의 요소를 가진다.


+ Recent posts