talk is cheap show me the code
// 父类
class QueryParam {
private String A;
private String B;
}
// 子类
class SonQueryParam extends QueryParam {
private String C;
private String D;
}
// 接口
public interface IAuditService{
List<A> getRecordList(QueryParam queryParam);
}
// controller
public A list(SonQueryParam queryParam) {
// 调用接口方法,传子类作为实参
auditService.getRecordList(queryParam));
}
// service 实现上面接口
public class service implements IAuditService {
@Override
public A list(QueryParam queryParam) {
// 调用接口方法,传子类作为实参
queryParam.getC() // 此处保错
// 如果使用
// SonQueryParam param = (SonQueryParam) queryParam;
// 报QureyParam cannot be cast to SonQueryParam错误
}
}
怎么样才能拿到子类的参数?