Programming/C#

Virtual, Abstract, Interface

SherryBirkin 2017. 11. 6. 13:45

Interface - 여러클래스에 공통적인 기능을 추가 하기 위해 사용 

              (파생클래스에서 구현해야함 <interface에 정의된 것 전부>)


Abstract - 파생클래스에서 공유할 기본클래스의 공통적인 정의 제공하기 위해 사용

              (파생클래스에서 구현해야함 <Abstract 선언된 것>)


Virtual   - 메서드,속성, 인덱서 또는 이벤트 선언을 한정하는데 사용

             (파생클래스에서 Override 하여  따로 사용할 수 있음)




=> Virtual은 Override 하지 않아도 사용 가능한 완전한 class (그대로 사용가능)

     Virtual한정자가 달린 것들을 재정의하여 사용 가능.


=> abstract는 여러개의 파생 클래스에서 공유할 기본 클래스의 공통적인 정의만

    하고 ,파생클래스에서 abstract 한정자가 달린 것을 모두 재정의 해야함.


=> Interface는 abstract와 비슷하지만 멤버변수를 사용할 수 없다.



예제 소스

Oriented.zip