본문 바로가기

DEV_STUDY/C#

[C# 객체지향] 추상 함수, 추상 클래스 - Abstract Mehtod, Abstract Class


추상 함수란 무엇인가?!

Abstract Method ..

몸체가 없는 함수.

프로토타입만 가지고 있는 함수.

라고 읽혀지고 있다.

-출저 - JABOOK


이 추상함수를 쓰려면 몸체 앞에 반드시 abstract 키워드를 붙여서 사용 한다.

그리고 이러한 추상함수를 하나라도 포함하고 있는 클래스는 앞에도 abstract를 붙여서 추상 클래스임을 명시해야 한다.

또한 이러한 추상 클래스는 반드시 상속하여 오버라이드를 통해 구현한다음 사용하여야 객체가 생성가능하다.

단 하나의 추상 함수가 구현되어 있지 않다면 상속받은 클래스 또한 추상 클래스가 되고 만다.

* Abstract로 선언된 추상 함수는, 상속받은 하위클래스에서 오버라이딩 하려면 override키워드를 사용하여 오버라이딩 해준다.


그러면 이러한 추상함수,클래스를 왜 사용 하는 것일까?!!?

아까전에 얘기한 다형성과 관련된 내용이다. 하나의 열쇠를 가지고 여러개의 문을 열 수 있다면 이것이 다형성이라고 했던 것이 기억

나는가. 간단하게 설명을 해보겠다.

자동차의 종류는 여러가지가 있다.

그러나 이러한 자동차의 기본적인 구조는 모든 차량이 똑같다.  브레이크, 백미러,  기어, 타이어 등등 기본적인 골격은 같다.

하지만 자동차를 제일 크게 구분 지을 수 있는 것은 바로 엔진 이다. 엔진의 크기에 따라 소형차가 될 수 있고, 대형차가 될 수도 있다.

이러한 맥락에서 ,

차의 골격을 하나만 만들어놓고 , 이러한 골격을 그대로 복사해와서 엔진만 자신이 원하는 크기로 지정 한다면 수많은 차를 만들어 낼

수 있는 것이다.

이처럼 추상함수는 하나의 커다란 틀을 만들어 놓고 그것을 상속받아 상위클래스에서는 명시만 해놓고 하위클래스에서 재 정의 해서

사용 하는것이 목적이다.