Java 기초 문법 5

Eddie·2025년 6월 12일

인터페이스에 관하여 같이 공부 해보려고 합니다!

인터페이스란?

영어로 ‘interface(인터페이스)’는 ‘결합부’라는 뜻으로, 서로 다른 두 시스템이나
장치, 사람 등을 이어주는 부분
을 말합니다!

ex) 어떤 사람이 컴퓨터를 켜려고 전원 버튼을 눌렀다면
그 버튼이 어떤 사람과 컴퓨터 전원 시스템 사이의 인터페이스가 됩니다.

-> 따라서 자바에서도 인터페이스클래스와 외부 세계(ex. 개발자, 다른 클래스)를 이어주는
역할
을 합니다.

  • 인터페이스내부에 추상 클래스를 가지고 있기 때문에 인터페이스를
    받은 클래스에서는 해당 메서드를 오버라이딩으로 다시 정의하여 사용합니다!
  • 낳아준 부모 외에도 어떤 친구들과 어울리느
    냐에 따라 다른 모습을 보일 수 있듯이, 자바의 클래스는 슈퍼 클래스를 상속받는 것
    외에도 여러 개의 인터페이스로부터 메서드
    를 받아올 수 있습니다(다중상속).

  • 인터페이스를 받아 클래스를 만들 때implements를 사용
  • 여러 개의 인터페이스를 상속하는 경우 콤마(,)를 이용해 인터페이스 명을 구분
  • 상속을 위해 extends와 함께 쓰일 때는 항상 extends가 implements보다 먼저 오게
    됩니다

아래에 실습을 해보도록 하겠습니다.

// Citizen.java

public class Citizen extends Person implements Money,Work{
    public void give(int money){
        System.out.println(money + "원을 썼습니다.");
    }

    public void receive(int money){
        System.out.println(money + "원을 벌었습니다.");
    }
    
    public void work(int salary){
        System.out.println(salary + "원을 봉급으로 받았습니다.");
    }
}

// person.java

public class Person {
    public String name;
    public int age;
    public int weight;

    public void eat() {
        System.out.println("먹는다.");
    }

    public void sleep() {
        System.out.println("잔다.");
    }
}
// Work.java

public interface Work {
    abstract void work(int salary);
}
// Money.java

public interface Money {
    abstract void give(int money);
    abstract void receive(int money);
}
// App.java

public class App {
    public static void main(String[] args) throws Exception {
        Person a = new Person();
        a.name = "엄인섭";
        a.sleep();


        Citizen b = new Citizen();
        b.name = "your name";
        b.work(2000000);
        b.give(300000);
        b.receive(200000);
    }
}

실행결과

profile
기초부터 차근차근 달려볼까요 :)

0개의 댓글