본문 바로가기
JAVA

[Java] 인터페이스

by watergrace2u 2020. 9. 12.
반응형
SMALL

인터페이스를 사용하면 각 객체의 특성에 맞게 메서드를 재정의 할 수 있다.

추상메서드만을 가진 순수한 추상클래스!

목적: 함수의 구현을 강제하기 위해(객체의 동작을 필수적으로 구현해야함)

static final 데이터 멤버(상수)를 가질 수 있음.

 

<예제>

 

Toy.java 

public interface Toy {

	// 인터페이스 안에서 일단 선언만해줌.
    	public void printName();
	public void walk();
	public void run();
	public void alarm();
	public void light();
}

 

ToyAirplane.java

public class ToyAirplane implements Toy {

	// 객체의 특성에 맞게 여기서 정의해줌.
    
        public void printName() {
            	System.out.println("---Airplane---");
        }
	public void walk() {
		System.out.println("I can't walk.");
	}
	public void run() {
		System.out.println("I cant' run.");
	}
	public void alarm() {
		System.out.println("I have alarm function.");
	}
	public void light() {
		System.out.println("I don't have light function.");
	}

}

 

ToyRobot.java

public class ToyRobot implements Toy {
	
	// 객체의 특성에 맞게 정의해줌.
    
        public void printName() {
            	System.out.println("---Robot---");
        }
	public void walk() {
		System.out.println("I can walk.");
	}
	public void run() {
		System.out.println("I can run.");
	}
	public void alarm() {
		System.out.println("I don't have alarm function.");
	}
	public void light() {
		System.out.println("I have light function.");
	}
}

 

MainClass.java

public class MainClass {
	public static void main(String[] args) {
		Toy toys[] = new Toy[2];
		toys[0] = new ToyRobot();
		toys[1] = new ToyAirplane();
		
		for(int i=0;i<toys.length;i++) {
        		toys[i].printName();
			toys[i].walk();
			toys[i].run();
			toys[i].alarm();
			toys[i].light();
			
			System.out.println();
		}
	}
}

 

실행결과

 

반응형
LIST

'JAVA' 카테고리의 다른 글

[JAVA] 자바의 특징 및 장점  (0) 2021.04.10
[Java] Collection(컬렉션)  (0) 2020.09.14
[Java] StringBuffer, StringBuilder  (0) 2020.09.12
[Java] 추상클래스  (0) 2020.09.12
[Java] toString() 메서드 자동 호출  (0) 2020.09.05

댓글