추상 메소드만 담고 있는 인터페이스
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 ) { ... }
}
'# 02 > Java' 카테고리의 다른 글
[윤성우의 열혈자바] 1-2. 자바 프로그램과 실행의 원리에 대한 이해 (0) | 2019.10.18 |
---|---|
[Java] 인터페이스의 문법 구성과 추상 클래스 (0) | 2019.08.19 |
[Java] 싱글턴 패턴 (0) | 2019.07.17 |
[Java] 제네릭 2 (0) | 2019.07.09 |
[Java] 제네릭 1 (0) | 2019.07.09 |