인터페이스 실습 - Vehicle

UML

  • Vehicle : "탈 수 있는" 인터페이스 정의

    • run()

객체의 사용방법을 정의한 타입인 인터페이스 사용했다. 인터페이스는 사용 방법이 동일한 클래스를 만드는 기술이다.

인터페이스는 상수, 메소드만을 멤버로 가질 수 있다. 인터페이스는 객체를 생성할 수 없기 때문에 생성자를 가질 수 없다.

여기서public void run() 메소드는 추상 메소드로 리턴타입과 어떠한 매개값이 필요한지만 알려준다. 인터페이스에서 선언한 모든 메소드는 public abstract특성을 갖는다.

  • Bus와 Subway는 Vehicle을 Realization(인터페이스와 구현의 관계)하고 있다.

인터페이스는 어떤 구현 객체를 대입하느냐에 따라 실행 결과가 달라진다.

  • Taxi는 owner: String의 필드를 두어 공용택시인 경우와 개인택시(소유주만 운전할 수 있는)를 구분하였다.

생성자에서 공용택시인지, 개인택시인지 구분할 수 있도록 구현하였다.

  • Driver

    • 생성자에서 license_num이 없으면 생성이 불가능 하도록 만들었다.

    • dirve메소드는 drive(Vehicle car)와 drive(Taxi taxi)를 오버로딩하였다.

      • 오버로딩(Overloading) : 같은 이름의 메소드를 여러개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

      • 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 사용한다.

      • 구분

        오버로딩

        오버라이딩

        메소드이름

        동일

        동일

        매개변수 타입

        다름

        동일

        리턴 타입

        상관없음

        동일

  • Main

Last updated

Was this helpful?