abstratct class와 interface의 차이점을 말하기 전에 abstract class 와 interface는 무었인가..?
abstract clss는 보통 abstract 매소드를 가진 class 이며 객체를 생성 할 수 없다.
abstract method 는 또 뭐란 말이냐??

abstract method는
모두 virtual 매소드 이며 하위 클래스에서 상속을 받는다면 반드시 구현해 주어야 하는 매소드 이다.

virtual 매소드는??
기반형의 매소드가 아닌 현재형의 매소드가 호출될 수 있도록 하는 키워드..

그렇다면 이 둘의 차이는 무었일까.
abstract class는 생성자를 가질수 있다. 그러나 interface는 그럴수 없다.
abstract class는 abstract가 아닌 매소드를 가질수 있다. 그러나 interface는 그럴수 없다.
abstract class는 맴버 변수를 가질 수 있다 .그러나 interface는 그럴수 없다.
abstract class는 매소드의 접근자 모두를 가질수 있다. public, private, internal.. ect
그러나 iterface 는 public만 가질수 있다.
abstract class는 클래스 이므로 하나만 상속이 가능하나. interface는 다중 상속이 가능하다.

그럼 언제 이 둘을 사용하여야 하는가??
당연히.. is a 관게일땐 abstract class ,
다른 연관이 없는 class에서 기능을 사용하고 싶을 경우는 interface는 사용하는 것이 좋겠다.

[출처] C# 에서 abstract class와 interface의 차이점?|작성자 갑환
by 피요히코~ 2009. 10. 15. 09:54
| 1 |