추상클래스

프로그래밍/C# 2020. 3. 22. 16:47

추상 클래스, 추상 메서드

   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
beautifulhill

,