当前位置: 首页 > 知识库问答 >
问题:

在一行中创建父子类的对象?

林泰平
2023-03-14

我写了这个,但我不明白这是什么。

Public ClassA {

//some methods here
}



Public ClassB extends ClassA {

Public static void main(String[] args) {

ClassA abc=new ClassB                

//What is purpose of this line and what advantage it gives us. I accidently wrote this but compiler (Eclipse not generating any error on this statement).

} 

共有1个答案

丁豪
2023-03-14

您碰巧发现了变量的静态类型和动态类型的区别及其与继承关系的连接。

您的变量abc具有静态类型classa。因此,编译器只允许您对该变量使用该类中定义的方法。在初始化abc之后,它具有动态类型classb

由于classB扩展了classa,因此它具有classa的所有方法和属性(甚至更多),可以通过abc使用is。

 类似资料:
  • 当我们实例化子类对象时,父类的构造函数也会被调用。那么它是父类的对象的创建吗?

  • 我通过学校为一项任务提供的简报创建了一个飞机座位预订系统。我遇到了一个我无法解决的主要问题。 摘要说明抽象类必须有一个抽象方法和大约4个公共方法。在抽象类的两个子类中,我们都必须初始化对象数组(所有普通的座位)。然而,一旦它们被初始化,我不知道如何将它们发送回抽象类(该类有一个检查未预订的飞机座位的方法,这就是我需要初始化的座位对象的地方) ArrayIndexOutOfBounds在一个应该在边

  • 问题内容: 考虑以下嵌套类。 问题答案: 您可以像这样声明一个对象数组。 并实例化它们,您可以在类中执行类似的操作。

  • 我正在尝试使用Dozer从JAXB实体“JaxbParent”填充Hibernate实体“Parent”。我的Hibernate实体: 我的Jaxb实体看起来像: My Dozer xml映射配置: 因此,为了将孩子列表转换为孩子集,我使用CustomConverter,并且我得到了正确的数据字段。问题是,Hibernate需要每个孩子都有对父对象的引用(以执行保存),但目前它为空。我试图将“th

  • 问题内容: 例如,在以下层次结构中创建自定义数字类型 在方法中具有逻辑: 然后,使用构造函数创建实例: 由于递归限制,此代码将提高。这只是期望行为的示例。但是我也尝试使用这种方法来实现,似乎我误解了世界。 问题答案: 你,而类也 不能 有方法,让他们继承这些从; 这就是导致您无限递归的原因。 您可以针对闭包进行测试,以查看是否具有子类: 并在: 演示:

  • 我正在进行一些考试修改工作,创建了一个Employee抽象类和两个扩展到Employee类的其他类(AcademyicEmployee和ProfessionalEmployee)。 我在Employee类中设置了一个公共静态void main来运行这些行: 我知道您不能实例化一个抽象类,并且创建的实际对象是“new”关键字之后的任何内容,但为什么允许我这样做: 我想它的工作方式是“数据类型”然后“