Java Interface

🧐Reenta.Kim.Dev·2024년 6월 26일
0

JAVA

목록 보기
1/1

Interface??

자바에서 클래스들이 반드시 구현해야 하는 메소드의 집합을 정의하는 일종의 청사진(설계도).
인터페이스를 사용하면 여러 클래스가 같은 방식으로 동작하도록 할 수 있다.


특징

  1. 추상 메소드만 포함: 인터페이스 안의 메소드는 기본적으로 구현이 없는 추상 메소드이다.
  2. 다중 상속: 자바는 클래스의 다중 상속을 지원하지 않지만, 인터페이스는 여러 개를 구현할 수 있다.
  3. 상수만 포함: 인터페이스 안의 변수는 기본적으로 public static final로 정의되어 상수로 취급된다.

인터페이스 정의

public interface Vehicle {
    void start();
    void stop();
    void accelerate();
}

예제

ElectricCar, Motorcycle 클래스가 이 인터페이스를 구현
각 클래스는 start, stop, accelerate 메소드를 구현하여 각각의 동작을 출력

ElectricCar

public class ElectricCar implements Vehicle {
    @Override
    public void start() {
        System.out.println("Electric Car is starting...");
    }

    @Override
    public void stop() {
        System.out.println("Electric Car is stopping...");
    }

    @Override
    public void accelerate() {
        System.out.println("Electric Car is accelerating...");
    }
}

Motorcycle

public class Motorcycle implements Vehicle {
    @Override
    public void start() {
        System.out.println("Motorcycle is starting...");
    }

    @Override
    public void stop() {
        System.out.println("Motorcycle is stopping...");
    }

    @Override
    public void accelerate() {
        System.out.println("Motorcycle is accelerating...");
    }
}

인터페이스 사용

VehicleTest 클래스의 main 메소드에서 다양한 차량 객체를 생성하고 인터페이스 타입으로 참조하여 메소드를 호출

public class VehicleTest {
    public static void main(String[] args) {
        Vehicle myElectricCar = new ElectricCar();
        Vehicle myMotorcycle = new Motorcycle();

        myElectricCar.start();
        myElectricCar.accelerate();
        myElectricCar.stop();

        myMotorcycle.start();
        myMotorcycle.accelerate();
        myMotorcycle.stop();

    }
}

결론

  • 인터페이스는 자바에서 다양한 객체들이 같은 방식으로 동작하도록 강제할 때 유용하다
  • 이를 통해 코드의 유연성과 재사용성을 높일 수 있다.
  • 예제에서 보듯이, 인터페이스를 사용하면 다양한 종류의 차량을 동일한 방식으로 제어할 수 있어 코드의 가독성과 유지보수성을 향상시킬 수 있다.
profile
코드가 내 마음을 읽어서 자동으로 작성되는 그날이 하루 빨리 오길..🧑🏻‍💻

0개의 댓글