C#

추상클래스와 인터페이스(Interface)

코다람쥐 2022. 1. 25. 16:02

1. 추상클래스

부모클래스의 멤버함수를 자식클래스가 상속받을 때 멤버함수의 오버라이딩을 강요하고 싶을 때 사용하면 된다.

추상클래스 정의

        abstract class MyClass
        {

        }

 

추상함수 정의

        abstract class MyClass
        {
            public abstract void Coda();
        }

추상함수는 자식클래스에서 오버라이딩을 통해 반드시 정의해야함.

 

 

2. 인터페이스

인터페이스를 상속받은 클래스는 반드시 인터페이스의 멤버를 재정의 해야한다.

정의

        interface IFlyale
        {
            void Fly() { }
        }

 

사용방법

        class Monster
        {
        }
        interface IFlyale
        {
            void Fly() { }
        }
        
        class Orc : Monster, IFlyale
        {
        }

인터페이스는 상속과 달리 여러 개를 받을 수 있다.

 

업캐스팅

IFlyable iFlyable = new Orc();

인터페이스를 상속받았다는 시점에서 보면 업캐스팅이 가능하다.