본문 바로가기
C#

[c#] 추상클래스와 추상 메서드(abstract)

by 코모's 2021. 8. 20.
반응형

abstract 란?

  • 클래스, 메서드, 프로퍼티, 인덱서, 이벤트와 함께 사용할 수 있다.
  • abstract가 사용되면 파생클래스에서 반드시 구현되어야 한다.

 

추상 클래스

  • 추상 클래스는 인스턴스화 될 수 없다.(객체를 생성할 수 없음)
  • 변수와 메서드의 선언은 일반 클래스와 동일하게 할 수 있다.
  • 상속을 제한하는 sealed와는 같이 사용할 수 없다.

추상 메서드

  • 추상메서드 선언은 추상 클래스에서만 가능하다.
  • 기본적인 동작은 가상함수와 동일하지만 파생 클래스에서 추상메소드는 반드시 구현해야한다.
  • 추상 메서드는 구현부가 존재하지 않는다.(파생 클래스에서만 구현 가능)
  • 파생클래스에서 override 키워드를 통해 재정의 한다.
  • private, static, virtual 키워드와는 사용 불가능 하다.

 

예시

public abstract class Animal
{
	public int hp;
    public void setHp(int _hp)
    {
    	hp = _hp;
    }
    public abstract void walk();	//선언만 가능
}

public class dog : Animal
{
	public override void walk()	//override하지 않으면 오류 발생
    {
    	Console.WriteLine("dog walk");
    }
}
반응형

'C#' 카테고리의 다른 글

[C#] 제네릭 형식 제약조건  (1) 2022.09.30
[c#] delegate 와 Event  (0) 2022.06.30
[c#] 가상(virtual)함수와 오버라이딩(override)  (0) 2021.08.20
[c#] Boxing 과 Unboxing  (0) 2021.08.20
[c#] 코루틴과 Invoke  (0) 2021.08.09