추상 클래스, 추상 메서드
virtual 예약어로는 자식클래스가 반드시 재정의(override)를 하도록 강제 할 수 없음
추상메서드를 통해 자식들이 반드시 재정의 하도록 강요
부모 클래스에서 abstract 예약어를 지정
자식 클래스에서 override 예약어를 사용하여 재정의
구현코드가 없음
추상클래스는 new를 사용해 인스턴스를 만들 수 없음
추상메서드는 추상클래스 안에서만 선언
다중상속 불가능
using System;
namespace Example
{
class Program
{
static void Main(string [] args)
{
//Food food = new Food();/*오류: 추상클래스 new 사용 불가능*/
Food coke = new Coke();
coke.Eat(); //마신다
Console.WriteLine(coke.Sell(1000));// 1000원을 낸다.
}
}
abstract class Food
{
public abstract string Sell(int won);
virtual public void Eat()
{
Console.WriteLine("먹는다");
}
}
class Coke : Food
{
public override string Sell(int won)
{
return won + "원을 낸다.";
}
new public void Eat()
{
Console.WriteLine("마신다");
}
}
}
'프로그래밍 > C#' 카테고리의 다른 글
다형성 (0) | 2020.03.22 |
---|---|
Object 의 메서드 - ToString, GetType, Equals, GetHashCode (0) | 2020.03.22 |
as, is 연산자 (0) | 2020.03.20 |
객체지향 - 3 (0) | 2020.03.20 |
객체지향 -2 (0) | 2020.03.20 |
WRITTEN BY
,