public abstract class AbstractClass
{
public abstract void AbstractClassMethod();
}
public class DerivedClass extends AbstractClass {
@Override
public void AbstractClassMethod() {
// TODO Auto-generated method stub
}
}
public interface InterfaceObject
{
public void InterfaceObjectMethod(AbstractClass oAbstractClass);
}
public class TestAbstractParam implements InterfaceObject {
@Override
public void InterfaceObjectMethod(AbstractClass oAbstractClass) {
// TODO Auto-generated method stub
}
}
public class TestDerivedParam implements InterfaceObject {
@Override
public void InterfaceObjectMethod(DerivedClass oDerivedClass) {
// TODO Auto-generated method stub
}
}
TestDerivedParam 클래스를 컴파일하는 동안 오류가 발생합니다. 누구든지이 이유를 설명해 주시겠습니까? 보다 구체적으로 말하면, 메소드가 기본 유형을 예상하는 하위 유형 매개 변수를 허용하지 않는 이유는 무엇입니까? 감사합니다. TestDerivedParam
에서기본 클래스 객체를 예상하는 파생 클래스 객체 전달
자바를 언급하면서 * 기본 클래스 *라는 용어를 사용하지 마십시오. 언젠가는 사용 되긴하지만 그것은 자바에만 국한된 것이 아닙니다. 당신은 * 수퍼 클래스 *라는 용어를 사용해야합니다. – Lion
감사의 사자! 나는 지금부터 수퍼 클래스라는 용어를 사용하겠다. – Austin
btw, 나는 추상적 클래스를 참조 할 때 특히 "기본 클래스"라는 용어를 사용한다. – Bohemian