본문 바로가기

# 02/Java

[Java] 인터페이스의 기본과 그 의미

반응형

추상 메소드만 담고 있는 인터페이스


interface Printable {

public void print ( String doc ),         // 추상 메소드

}


인터페이스의 정의! 메소드의 몸체를 갖지 않는다.

따라서 인스턴스 생성 불가! 참조변수 선언 가능!



class Printer implements Printable {

public void print( String doc ) {

System.out.println ( doc );

}

}

인터페이스를 구현하는 클래스!

구현하는 메소드와 추상 메소드 사이에도 메소드 오버라이딩 관계 성립, 따라서 @Override 붙일 수 있음



인터페이스형 참조변수 선언 가능

Printable prn = new Printer();                // Printable 안에 메소드만 접근 가능!!

prn.print("Hello");





상속과 구현


class Robot extends Machine implements Movable, Runnable { ... }


Robot 클래스는 Machine 클래스를 상속한다.- 이렇듯 상속과 구현 동시에 가능!


Robot 클래스는 Movable과 Runnable 인터페이스를 구현한다. - 이렇듯 둘 이상의 인터페이스 구현 가능!(클래스는 상속 1개만 됨!)



Machine ref = new Robot(); - 참조가능

Robot ref = new Robot(); - 참조가능

Movable ref = new Robot(); - 참조가능

Runnable ref = new Robot(); - 참조가능





인터페이스의 본질적 의미


MS에서 제공하는 인터페이스

interface Printable {

public void print ( String doc );

}



삼성 프린터

class SPrinterDriver implements Printable {

@Override

public void print ( String doc ) { ... }

}


LG 프린터

class LPrinterDriver implements Printable {

@Override

public void print ( String doc ) { ... }

}



반응형