추상 메소드
- 구현 코드를 가지지 않는 메소드
ex) public abstract int dd(int a, double b);
- 상속 계층의 상위 클래스에서 파생 클래스를 위해 메소드 시그니처만 정의해노고자 할때 사용
- 너무 일반적이기 때문에 코드를 정의할 수 없으며 파생 클래스에서 재정의해야만 호출 가능한 메소드가 된다
- 파생 클래스에서 반드시 재정의해야 하므로 virtual을 붙이지 않아도 자동으로 가상이다
- Animal은 일반적인 동물을 표현하기는 하지만 너무 일반적이어서 아무 것도 할 수 없으며 우는 소리조차 정의할수 없다
동물들은 울 수 있지만 동물 그 자체는 우는 방식을 결정할수 업슨 것이다
그래서 Animal의 Sound메소드는 본체를 가지지 않는 추상 메소드로 정의되어 있다
즉, 동물은 분명히 울기는 하는데 어떻게 우는지는 Animal 단계에서 결정할 수 없고 밑으로 내려가봐야 아는 것
- 실세계에 존재하는 특정한 동물을 표현하는 것이 아니므로 A = new Animal() 생성문은 에러가 난다
- 추상 클래스의 자식들은 상속받은 추상 메소드를 재정의해야만 비로소 구체 클래스가 된다
'Study > C#' 카테고리의 다른 글
C# 클래스 상속 - 3. 정적 클래스 (0) | 2012.01.04 |
---|---|
C# 클래스 상속 - 3. 봉인 클래스 (0) | 2012.01.03 |
C# 클래스 상속 - 2. 재정의 (다형성) (0) | 2011.12.29 |
C# 클래스 상속 - 2. 재정의 (메소드 재정의) (0) | 2011.12.29 |
C# 클래스 상속 - 2. 재정의 (멤버 숨기기) (0) | 2011.12.29 |