HappyWeasel
Java - 인터페이스(interface) 본문
인터페이스란?
클래스와 달리 객체를 생성할 수는 없으며, 클래스에서 구현해야하는 작업 명세서이다.
인터페이스를 사용하는 이유?
인터페이스를 사용하는 이유는 많지만, 가장 큰 이유는 객체가 다양한 자료형(타입)을 가질 수 있기 때문이다.
InterfaceA.java
public interface InterfaceA {
public void funA(); //메소드를 정의하지 않는다.
}
InterfaceB.java
public interface InterfaceB {
public void funB(); // 메소드를 정의하지 않는다.
}
Main.java
class interfaceClass implements InterfaceA, InterfaceB { // implements 뒤에 인터페이스 나열한다.
public interfaceClass() {
System.out.println("ImplementClass constrator");
}
@Override
public void funA() { // 해당 인터페이스의 메소드를 정의한다.
System.out.println(" -- funA() -- ");
}
@Override
public void funB() {
System.out.println(" -- funB() -- ");
}
}
public class MainClass {
public static void main(String[] args)
{
InterfaceA ia = new interfaceClass(); // 데이터 타입을 Interface로 불러온다.
InterfaceB ib = new interfaceClass();
ia.funA();
ib.funB();
}
}
예제
Toy.java
public interface Toy {
public void walk();
public void run();
public void alarm();
public void light();
}
ToyAirPlane.java
public class ToyAirPlane implements Toy {
@Override
public void walk() {
System.out.println("The airplane can not walk");
}
@Override
public void run() {
System.out.println("The airplane can not run");
}
@Override
public void alarm() {
System.out.println("The airplane has alarm function");
}
@Override
public void light() {
System.out.println("The airplane has no light function");
}
}
ToyRobot
public class ToyRobot implements Toy {
@Override
public void walk() {
System.out.println("The Robot can walk");
}
@Override
public void run() {
System.out.println("The Robot can run");
}
@Override
public void alarm() {
System.out.println("The Robot has no alarm function");
}
@Override
public void light() {
System.out.println("The Robot has light function");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Toy robot = new ToyRobot();
Toy airplane = new ToyAirPlane();
Toy toys[] = {robot, airplane};
for(int i=0 ; i < toys.length ; i++) {
toys[i].walk();
toys[i].run();
toys[i].alarm();
toys[i].light();
}
}
}
'Basic > Java' 카테고리의 다른 글
Java - Map (0) | 2019.04.15 |
---|---|
Java - JVM, JRE, JDK (0) | 2019.04.15 |
Java - 익명 클래스(Annoymous Class) (0) | 2019.04.14 |
Java - 내부 클래스 (1) | 2019.04.14 |
Java - 상속 (0) | 2019.04.13 |
Comments