C# 추상클래스와 인터페이스

2021. 1. 26. 17:04개발 관련 학습정리/C#

반응형

 

 

추상 클래스

추상 클래스는 미완성된 클래스를 말하며, 추상 메서드나 추상 프로퍼티를 포함한다.

이 클래스 내에는 직접적인 구현을 하지 않으며, 오직 자식 클래스에서 상속을 통해서만 구현한다.

 

    public abstract class abstractclass
    {
        public string name;

        public int id { get; set; }

        public abstract void show(); // 추상 메서드
    }

    public class normalclass : abstractclass
    {
        public override void show()
        {
            Console.WriteLine(".");
        }
    }

 

abstractclass 에서는 추상클래스 이므로 메서드를 구현하지 못하고, 상속받은 자식 클래스에서 구현한다.

id는 추상 프로퍼티에 해당한다.

추상 메서드도 가상 메서드에 속하기 때문에 override를 통해 재정의 한다.

 

 

 

인터페이스

 

인터페이스는 추상 클래스 처럼 다른 클래스를 작성하는데 도움을 줄 목적으로 작성된다.

추상 클래스보다 추상화 정도가 높고, 다중 상속이 허용된다.

    interface IWLog
    {
        void WLog(string text);
    }

    interface IELog
    {
        void ELog(string text);
    }

    class Logger : IWLog, IELog
    {
        public void WLog(string text)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(text);
        }

        public void ELog(string text)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(text);
        }
    }

 

위 코드에서 IWLog와 IELog 인터페이스는 각각 추상 메서드를 포함하고 있고,

Logger클래스에서 WLog, ELog 메서드를 구현하였다.

 

 

main함수에서 클래스 호출 후 결과

 

 

 

반응형

'개발 관련 학습정리 > C#' 카테고리의 다른 글

C# 람다 식 Lambda  (0) 2021.01.27
C# Generic  (0) 2021.01.27
C# Delegate  (0) 2021.01.25
c# property  (0) 2021.01.12
[C#] overriding 오버라이딩 / 메서드 숨기기 (hold)  (1) 2019.04.14