본문 바로가기

Windows Developer/VB

[VB.NET] 추상 클래스와 인터 페이스

1. 추상 클래스
추상 클래스(MustInHerit Class)는 추상적인 클래스로부터 부분적으로 구현되거나 전혀 구현되지 않은 불안전한 클래스이므로 객체화될 수 없는 클래스이다

다시 말해, 추상 클래스는 객체가 갖는 특성들을 추상화시켜 놓았을 뿐 아직 구체화시키지 못한 클래스이므로, 이 추상 클래스를 상속하는 자식 클래스에서 좀 더 구체화시키도록 하는 것이다. 즉, 추상 클래스는 상속을 목적으로 만들어진 클래스이다.

추상 메서드는 구현이 이루저지지 않고 단지 그 프로토타입만을 가지고 있는 메서드이다. 추상 클래스만이 가질 수 있고, 구현부를 가질 수 없으며, 자식 클래스에서 자신의 구미에 맞게 반드시 구현해야 한다.



2. 인터페이스
인터페이스란 클래스가 제공하는 서비스를 명시하는데 사용되는 행위의 집합으로 일종의 계약서라고 할 수 있다. 일반적으로 인터페이스명은 I로 시작하며, 이것은 마치 추상 메서드로만 구성된 추상 클래스와 유사하다.

*인터 페이스 정의*
다음과 같이 Interface ~ EndInterface 키워드를 사용하여 정의한다.

<문법>Interface IMyInterface
                   Sub Methodl(ByVal x As Integer)
                      Property MyProperty() As Integer
         End Interface

인터페이스는 멤버로 Event, Sub, Function 및 Property 만을 포함할 수 있다. 인터페이스는 본래 추상화된 멤버들의 집합에 불과 하므로, 일반적인 Event, Sub, Function 및 Property와는 달리 구현 코드나 구현 코드와 관련된 문은 포함될 수 없다.
또한, 인터페이스 내의 모든 멤버는 암시적으로 public을 기본으로 하며 유효한 한정자는 Overloads, Default 두개 뿐이다.

*인터 페이스 구현*
인터페이스는 자체적으로 객체를 생성할 수 없으므로 실제로 클래스나 구조체가 인터페이스를 상속하여 구현해 주여야만 객체를 생성할 수 있다. 이러한 관계를 "클래스가 인터페이스를 구현한다"라고 말한다.
클래스의 상속에서는 하나의 클래스는 하나의 클래스만을 직속으로 상속할 수 있는 것과 달리, 하나의 클래스는 여러개의 인터페이스를 구현해 줄 수 있다. Implements 키워드를 사용한다.

<문법>Public Class implimentsClass
                   Implements ImyInterface
         End Class


다음은 각각의 주요 특성을 비교한 표이다.

'Windows Developer > VB' 카테고리의 다른 글

[VB.net] Split() 특정 문자열 제거  (1) 2011.03.15
[VB] API로 만든 DLL 사용하기  (0) 2010.12.07
[VB.NET] 클래스 기초  (0) 2010.08.12
[VB.NET] 제어문  (0) 2010.08.12
[VB.NET] 열거형과 구조체  (0) 2010.08.12