본문 바로가기
공부하며놀자/프로그래밍

[C#]Abstract class

by 테너토너 2022. 4. 27.

abstract function은 상속 받는 쪽에서 무조건 새로 구현해야 한다.

virtual은 기존 내용이 괜찮으면 그대로 쓰고 아니면 새로 구현해야 한다.

 

public abstract class BaseClass
{
    public string nameBase = "Base";

    public void BaseName()
    {
        Console.WriteLine($"Basename is {nameBase}");
    }

    public abstract void ChildName();
}

public class ChildA:BaseClass
{
    public string childName = "ChildA";

    public override void ChildName()
    {
        Console.WriteLine($"Child name is AAAA");
    }
}

public class ChildB : BaseClass
{
    public string childName = "ChildB";
    public override void ChildName()
    {
        Console.WriteLine($"Child name is BBBB");
    }
}



static void Main(string[] args)
{
    //var baseClass = new BaseClass();
    bool isChildA = true;
    BaseClass baseClass;

    if (isChildA)
    {
        baseClass = new ChildA();
    }
    else
    {
        baseClass = new ChildB();
    }
    baseClass.BaseName();
    baseClass.ChildName();

    //when isChildA = true
    //Basename is Base
    //Child name is AAAA

    //when isChildA = false
    //Basename is Base
    //Child name is BBBB
}
반응형

댓글