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类时出现错误。任何人都可以解释这个背后的原因吗? 更具体地说,问题是为什么一个方法不能接受期望基类型的子类型参数? 谢谢!传递需要基类对象的派生类对象
请不要在提到Java时使用术语*基类*。这不是特定于Java,虽然有时候会用到。你应该使用术语*超类*。 – Lion 2012-07-10 06:10:51
谢谢狮子!我将使用超级类从现在的 – Austin 2012-07-10 06:15:28
顺便说一句,我使用术语“基类”,特别是当提到一个抽象类。 – Bohemian 2012-07-10 06:23:35