티스토리 뷰

웹 개발 공부하기

[01.09] 인터페이스

jooya-1009 2025. 1. 12. 19:30

💥 인터페이스(Interface)

 - 인터페이스란 메소드의 목록만을 가지고 있는 명세(Specification), 사용자 정의 타입이다.

 - 메소드의 목록만 선언하고 구현은 하지 않는다.

 - 인터페이스의 선언 형태

 

- 인터페이스를 상속받는 클래스의 형태

💥 인터페이스를 사용하는 이유

 - 인터페이스는 본체가 정의되지 않는 추상메소드만 갖는다.

 - 인터페이스의 목적은 기존의 기능을 추가하거나 수정의 개념보다는 동일한 개념의 기능을 새롭게 구현하는 기능이다.

 - 공동 작업 시, 표준을 정하는 역할이다.

💥 추상 클래스를 상속 하는 경우

 - 일반적으로 클래스를 상속하는 이유는 기능의 확장이 목적이다.

💥 인터페이스를 상속 하는 경우

 - 스마트폰의 기능 목록 : 통화기능, 문자메시지, 와이파이, 블루투스, ...

 - 스마트폰과 상속 관계의 개념이 아니라 여러가지 기능의 나열이다.

 - 인터페이스에서 기능을 명세하고, 자식클래스에서 상속한다.

💥 메모리 관리

 - 플랫폼 기반의 객체 지향 언어는 가비지 컬렉터가 메모리를 자동 관리한다.

 - 백그라운드에서 더 이상 사용되지 않는 메모리를 찾아 회수한다.

💥 인터페이스 코드 작성

 - 인터페이스를 생성하고, 인터페이스로부터 상속받은 클래스를 구현

 - 스타크래프트 게임의 3종족들의 유닛 기능 - 공격과 이동 등, ...

 - 공격과 이동은 유닛의 필수 기능

 - 유닛 중에 저글링과 드라군 2개의 유닛을 인터페이스를 통해 구현

💥 인터페이스 실습 해보기

using System;

public interface IUnit{
    void Attack();
    void Move();
}

public class Zergling : IUnit{
    public void Attack(){
        Console.WriteLine("저글링 : 공격");
    }
    public void Move(){
        Console.WriteLine("저글링 : 이동");
    }
}

public class Draggoon : IUnit{
    public void Attack(){
        Console.WriteLine("드라군 : 공격");
    }
    public void Move(){
        Console.WriteLine("드라군 : 이동");
    }
}

class HelloWorld {
    static void Main() {
        Zergling zerg = new Zergling();
        zerg.Attack();
        zerg.Move();
        
        Draggoon dragoon = new Draggoon();
        dragoon.Attack();
        dragoon.Move();
    }
}

'웹 개발 공부하기' 카테고리의 다른 글

[01.13] 객체 리터럴  (0) 2025.01.13
[01.09] 람다 + 오늘의 포스팅💖  (0) 2025.01.12
[01.09] 오버로딩과 오버라이딩  (0) 2025.01.12
[01.09] 생성자와 상속성  (0) 2025.01.12
[01.09] 클래스(Class)  (0) 2025.01.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함