반응형
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 |