[C#] 추상 클래스 Abstract
by #독개#추상클래스라는 말이 좋지 않다 Abstract Class 라고 하자
정의
- 하나 이상의 추상 메서드를 포함하는 클래스
- Abstract Meothod : 선언부만 존재. 구현은 자식 클래스에서 할것
- Abstract Class : 인스턴스화 될 수 없다
사용목적
- 상속 받는 클래스들이 반드시 제공해야 하는 메서드를 정의 함으로써
- 모든 자식들이 반드시 가지고 있는 일관된 메서드를 얻을 수 있다
ex) 모든차의 클래스(소나타,그랜저,모닝등등)는 Start() 이라는 매서드로 다 시동을 걸자!
소나타.Start()
그랜저.Start()
모닝.Start()
특징
- Abstract Method는 반드시 Abstract Class안에 정의 되어야 한다 (오류뜸)
- 일반 Method는 Abstract Class나 일반Class 모두 정의가능
#실습 - 구성
abstract internal class Car
{
public string BrandName { get; set; }
public void Advertise()
{
Console.WriteLine("I Love BMW");
}
abstract public void Start();
}
internal class Sonata : Car
{
public override void Start()
{
Console.WriteLine("소나타의 시동을 킵니다");
}
}
internal class Morning : Car
{
public override void Start()
{
Console.WriteLine("모닝의 시동을 킵니다");
}
}
#실습 - 구현
public class Program
{
static public void Main(string[] args)
{
Sonata sonata = new Sonata();
Morning morning = new Morning();
Car car = sonata; //Abstract클래스가 인스턴스화 될순없지만 상속하는 부모이기 때문에 자식의 주소를 값으로 넣을 수 있다
car.Advertise(); //출력: I Love BMW
sonata.Start(); //출력: 소나타의 시동을 킵니다
morning.Start(); //출력: 모닝의 시동을 킵니다
}
}
'🔥 프로그래밍 학습 > C#' 카테고리의 다른 글
[C#] 구조체 Struct (0) | 2022.11.28 |
---|---|
[C#] 인터페이스 INTERFACE , Loosely Coupling (0) | 2022.11.28 |
[C#] ToString()의 활용 (0) | 2022.11.28 |
[C#] 모든 클래스의 조상 Object클래스 (0) | 2022.11.28 |
[C#] 상속과 오버라이딩 간단하게 정복 (0) | 2022.11.27 |
블로그의 정보
독한 개발자
#독개#