Java继承

标签 java jakarta-ee

我有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 类型的对象。 请帮帮我?

最佳答案

BA 的扩展。例如,采用 Animal 类和 Dog 扩展 Animal 类。 Dog 仍然是一个 Animal。你的情况也是如此。

关于Java继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068240/

相关文章:

java - 如何在 AWS 中创建新用户

java - android 如何将图像保存在特定文件夹中

java - 用于从 Java 中的 JPEG/EXIF 读取纬度和经度的开源库?

java - 暂停读取 Excel 并通过单击按钮恢复

java - JAVA EE应用程序中导出大量数据

eclipse - java.lang.ClassNotFoundException : javax. servlet.jsp.jSTL.core.LoopTag 错误

java - Tomcat context.xml 和 context.properties 文件

javascript - 在 Spring MVC 中返回 @Async 方法结果并将其返回给 Ajax 客户端

java - doGet 调用 doPost 或反之亦然

用于显示容器内部件的 Java 图表库