반응형
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 |
댓글