본문 바로가기
Study/C#

[C#][Study][기초다지기] 추상 함수 abstract

by 스테디코디스트 2023. 9. 23.
반응형

추상 함수 - abstract

- 기본 클래스가 해당 특징을 가진다는 것을 '명시'하기위해 구현

- abstract 키워드를 사용해 생성되었지만, 본문 내에서 구현하는 것은 따로 없음

- 추상 클래스에서 정의된 추상함수는 본 함수를 상속받은 하위 클래스들에서 '반드시' 재정의(override) 되어야한다.

- 클래스 내부에 abstract를 사용한 키워드가 있는 경우, 반드시 클래스에도 abstract 키워드를 사용해서 정의해야 한다.

- abstract 클래스는 인스터화 할 수 없음(new 키워드로 생성 불가)

[ex]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Abstract_Method
{
    class Program
    {
        static void Main(string[] args)
        {
            childclass ch = new childclass();
            ch.sum();
            Console.ReadKey();
        }
    }
}
 
abstract class baseclass
{
    public int num = 5;
    public abstract void sum(); // 자식 클래스에서 반드시 구현해야 함
}

class childclass : baseclass
{
	// override를 이용해 재정의를 나타내야 함
    public override void sum()
    {
        Console.WriteLine("Total Sum : " + num * num);
    }
}