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
}
반응형
'공부하며놀자 > 프로그래밍' 카테고리의 다른 글
[python][matplotlib] 파이썬에서 그래프 그리기 plot graph (0) | 2022.10.17 |
---|---|
[Python] logging logger 관련 내용 (0) | 2022.09.08 |
Visual Studio .net framework gui editor designer view 가 안 열릴 때 (0) | 2022.04.27 |
Visual Studio Code Python pip install 설정하기 (0) | 2021.12.15 |
정보를 받아서 보여주는 웹 Web Application 만들기 heroku github nodejs (0) | 2021.02.04 |
댓글