[Java 12-4 PrintableApp] 추상메소드

임승현·2022년 10월 18일

Java

목록 보기
45/126
package realization;

public interface Printable {
	//추상메소드(Abstract Method) : 자식클래스에서 반드시 오버라이드 선언
	void print();
	
	//JDK8 이상에서는 인터페이스에 명령을 작성할 수 있는 기능의 기본메소드 선언 가능
	//기본메소드(Default Method) : 인터페이스를 상속받아 자식클래스에 오버라이스 선언하지 
	//않아도 되는 메소드 - 오버라이드 선언하지 않은 경우 기본메소드 호출
	//형식)default 반환명 메소드명(자료형 매개변수명,...) { 명령;... }  
	default void scan() {
		System.out.println("[에러]스캔 기능을 제공하지 않습니다.");
	}
}
package realization;

public class PrintSingle implements Printable {
	@Override
	public void print() {
		System.out.println("[프린트]문서를 출력합니다.");
	}
}
package realization;

public class PrintMulti implements Printable {

	@Override
	public void print() {
		System.out.println("[복합기]문서를 출력합니다.");
	}
	
	@Override
	public void scan() {
		System.out.println("[복합기]문서를 스캔합니다.");
	}
}
package realization;

public class PrintableApp {
	public static void main(String[] args) {
		//기본메소드를 사용하기 위해서는 참조변수를 인터페이스로 선언
		Printable printOne=new PrintSingle();
		
		printOne.print();
		printOne.scan();//부모 인터페이스의 기본메소드 호출
		System.out.println("======================================================");
		Printable printTwo=new PrintMulti();
		
		printTwo.print();
		printTwo.scan();
		System.out.println("======================================================");
	}
}

0개의 댓글