C#/이것이 C#이다

[C# 기초강의] Ch 08. 인터페이스와 추상클래스

냠냠쿠 2023. 8. 10. 12:52
728x90

 

https://www.youtube.com/watch?v=Is2bdBpncHA&list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V&index=9

 

 

📌 인터페이스

  • 클래스의 청사진
  • 클래스가 해야하는 행동을 결정
    즉, 클래스가 어떤 메서드를 가질지 결정한다.
  • 두 클래스를 이어주는 커넥터 역할

◾ 인터페이스 선언하기

  • interface 키워드를 이용하여 선언
  • 대개 I로 시작하는 이름으로 명명한다.
  • 인터페이스는 기본적으로 메서드 구현과 필드를 갖지않는다.
  • 인터페이스를 상속하는 실체클래스는 반드시 인터페이스에서 선언된 메서드를 모두 구현해야한다.
    실체 클래스가 어떤 인터페이스의 파생 클래스인지 알고있다면 그 클래스가 어떤 public 메서드를 제공하는지도 파악 할 수 있다.
interface ILogger
{
	void WriteLog (string log) ;
}

class ConsoleLogger : ILogger
{
	public void WritLog (string message)
    {
    	Console.WriteLine("{0} {1}", DateTime.Now.ToLocalTime(), message);
    }
}

Ilogger logger = new ConsoleLogger();
logger.WriteLog("SomeLog");

📌 추상클래스

  • 메서드 구현을 가질 수 있다.
    추상클래스에서 구현을 가지지 않는 메서드를 추상메서드라고함.
    추상 클래스의 파생 클래스는 추상메서드를 구현해야함
  • 추상 크래스는 객체를 생성할 수 없음
  • 인터페이스를 제공하되 기본적인 구현을 함께 제공하고싶을 때 사용

◾ 추상클래스 선언하기

  • abstract class 를 이용해 선언
  • 구현체를 갖지 않는 메서드는 abstract 한정자로 수식
abstract class 클래스이름
{
	abstract 추상메서드이름();
    
    메서드이름()
    {
    	...
     }
}
728x90