我有A级
public class A{
public void doWork(){
..............
.............
}
}
现在公共(public)类 B 扩展了 A
public class B extends A{
@override
public void doWork(){
............
............
}
}
现在公共(public)类C在其中创建B的对象并将其传递给类D的方法
import xxx.xxx.B;
import xxx.xxx.D;
public class C{
B b= new B();
D d = new D();
d.method(b);
}
现在类 D 将类型 A 的参数带入其方法并对其进行操作。
public class D{
public void method(A a){
..........
..........
}
}
实际上是允许的,但我不明白为什么允许? 类 D 中的 method() 应该采用 A 类型的对象。 请帮帮我?
最佳答案
B
是 A
的扩展。例如,采用 Animal
类和 Dog 扩展 Animal
类。 Dog
仍然是一个 Animal
。你的情况也是如此。
关于Java继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068240/