내 arraylist에서 Car 클래스의 메소드에 액세스하려고합니다. 클래스 계층 구조는 본질적으로 : 재판의 많은 통해 나 '오류가Java : arraylist의 객체에서 서브 클래스 메소드에 액세스
Ford vehicle1 = new Ford(id, model, etc);
Chevy vehicle2 = new Chevy(id, model, etc);
ArrayList<Vehicle> list = new ArrayList<Vehicle>();
list.add(vehicle1);
list.add(vehicle2);
:이 예에서
class Vehicle {}
class Car extends Vehicle {}
class Chevy extends Car {}
class Ford extends Car {}
Car
클래스는 main
방법은 다음과 같습니다 getID()
라는 게터있다 다음과 같이 getID() 메소드에 액세스 할 수 있습니다.
System.out.println("Vehicle ID: " + ((Chevy) list.get(1)).getID());
어느 것이 작동하는지 ... 나는 다만 이것이 적당한 방법으로하고 있다고 상상할 수 없다. 이러한 하위 클래스 메서드에 액세스하는 더 좋은 방법이 있습니까?