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

[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
}
반응형

댓글