추상화 클래스와 메소드에 대해서 알아보도록 하겠습니다. 추상화 클래스는 상속용 클래스입니다. 오로지 상속용으로만 사용되고 객체의 생성은 불가능합니다. new 키워드를 통해 인스턴스를 만들 수 없습니다.
이미지에서 보듯 abstract라는 키워드를 class앞에 붙임으로써 추상화 클래스가 됩니다.
추상화 클래스는 미완성 클래스라고도 불립니다. 이렇게 불리는 이유는 추상화 메소드(함수)를 포함할 수 있기 때문입니다. 이 추상화 메소드는 virtual 가상화 메소드 처럼 재정의를 하고자 할 때 사용하지만 일반 클래스와 달리 부모 클래스내에선 정의를 하지 않고 선언만 할 수 있습니다. 상속받은 클래스 내에서 반드시 정의를 해야합니다.
예제에서 보듯 Character 추상화 클래스를 상속받은 Knight 클래스내에서 추상화 메소드인 Attack메소드를 재정의하고 있습니다. 이렇게 재정의 하지 않으면 오류가 발생합니다.
추상화 클래스 활용방법은 무궁무진하겠지만 게임을 예로 들자면 각각의 케릭터들이 가지고 있는 기본적인 상태나 기능들은 똑같지만 그 과정이나 동작 원리가 다르다면 추상화 클래스와 추상화 메소드를 활용하면 됩니다. 물론 일반 클래스의 가상화 메소드를 활용해도 되지만 추상화 클래스는 상속받은 자식 클래스에서 반드시 추상화 메소드를 정의해야 함으로 정의를 하지않는 실수를 미연에 방지 할 수 있습니다.
'프로그래밍 > c#' 카테고리의 다른 글
c#_is 연산자 (0) | 2022.01.10 |
---|---|
c#_45 인터페이스 interface (0) | 2021.11.01 |
c#_43 제너릭 Generics 타입 <T> (0) | 2021.09.19 |
c#_42 클래스 Virtual과 Override 가상 메소드(함수) 1 (0) | 2021.09.18 |
c# 네임스페이스 Namespace (0) | 2021.09.15 |
댓글