2013-09-25 3 views
1

부모 클래스를 확장하는 몇 가지 Java 클래스가 있습니다. 부모 클래스에서 자식 클래스의 몇 가지 메서드를 호출하려고합니다. 아무도 이것을하는 방법을 아는가? 감사합니다부모 클래스에서 Java get child 메서드

예제.

@MappedSuperclass 
public class LookupBaseEntity { 

    private List<VehicleConfiguration> vehicleConfigurations; 

    public VehicleConfiguration getVehicleConfiguration() { 
     return vehicleConfiguration; 
    } 

    public void setVehicleConfigurations(List<VehicleConfiguration> vehicleConfigurations) { 
     this.vehicleConfigurations = vehicleConfigurations; 
    } 

} 

당신은 부모가 아이에 대한 지식이나 의존성이 없어야로 부모가 직접 자녀의 메소드를 호출하지 않아도 것

@Entity 
public class VehicleYear extends LookupBaseEntity { 

    @OneToMany(mappedBy = "vehicleYear") 
    private List<VehicleConfiguration> vehicleConfigurations; 

    public VehicleYear() { 
    } 

    public List<VehicleConfiguration> getVehicleConfigurations() { 
     return vehicleConfigurations; 
    } 

    public void setVehicleConfigurations(List<VehicleConfiguration> vehicleConfigurations) { 
     this.vehicleConfigurations = vehicleConfigurations; 
    } 

} 
+0

왜 부모 클래스 메서드를 재정의하지만 동일한 구현을 재사용하고 있습니까? –

답변

4

자식 클래스. 부모는 을 간접적으로의 메소드를 오버라이드 (override)하는 Java의 OOPS 기능을 사용해 아이의 메소드를 호출 할 수가 있습니다. 즉, 부모가 자신의 비 최종 비 정적 메서드 중 하나를 호출하면 Java에서 가상 메서드 호출을 허용하는 검색 테이블의 마법을 통해 현재 자식 형식의 메서드를 호출합니다.

+0

부모 클래스에 메서드를 추가하여 모든 하위 클래스에 해당 조건 검사를 추가하지 않고도 구성 목록이 비 었는지 여부를 확인할 수 있기를 바랬습니다./ –

+0

@George : 다시 부모가 있어야합니다. 자녀에 대한 지식이나 의존성이 없습니다. 아마도 디자인 패턴을 사용하여 디자인을 용이하게 할 수 있습니다. –

+0

저는 이것을 지금 알고 있습니다. 저는 컴파일 시간에 부모와 자식이 방금 컴파일 된 것으로 생각했습니다. 아니, 이걸 처리 할 다른 방법을 찾아 낼거야. 감사합니다 –

관련 문제