추상클래스를 간단히 구현하는 방법
자식 클래스에서 상속받게 되면, override 키워드를 함수 앞에 붙인다.
using System;
/* 추상클래스 CoreClass.
* 버전정보를 위한 멤버변수 version을 가지고
* version에 값을 입력하는 추상메소드 setVer(),
* version을 출력하는 printVer() 메소드를 가진다. */
public abstract class CoreClass
{
protected string version;
public abstract void setVer();
public void printVer()
{
Console.WriteLine(version);
}
}
/* 추상클래스를 상속받고, setVer() 메소드를 구현해주는
* SystemA 클래스 */
public class SystemA : CoreClass
{
public override void setVer()
{
version = "1.0";
}
}
/* 추상클래스를 상속받고, setVer() 메소드를 구현해주는
* SystemB 클래스 */
public class SystemB : CoreClass
{
public override void setVer()
{
version = "2.0";
}
}
public class MainClass
{
public static int Main(string[] args)
{
/* SystemA 생성자를 이용하여 CoreClass 객체생성 */
CoreClass coreClass = new SystemA();
/* setVer() 메소드 실행, SystemA가 가진 메소드가 실행됨 */
coreClass.setVer();
coreClass.printVer();
/* SystemB 생성자를 이용하여 SystemB 데이터형을 생성
* 생성된 데이터형을 coreClass 객체가 참조케 함 */
coreClass = new SystemB();
/* setVer() 메소드 실행, SystemB가 가진 메소드가 실행됨 */
coreClass.setVer();
coreClass.printVer();
return 0;
}
}