程宇寒 2020-02-27 11:45 采纳率: 33.3%
浏览 827

在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?)

在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?)

被一些教材和资料误导和困扰,有些教材和资料上说,按照面向对象的思想,“没有爸爸,怎么会有儿子”,即 “没有父类怎么会有子类”。言外之意就是说,创建子类对象时,会先创建父类对象!然而真的是这样吗?

提个问题:如果当创建一个子类对象会先创建父类对象的话,那么如果父类是抽象类的话,那该抽象父类也会被实例化喽,这与抽象类不能实例化相互矛盾啊!

图片说明
图片说明
图片说明

package javase5;

public abstract class Animal {
    int age;

    public Animal() {
        this.age = 6;
        System.out.println("我是Animal类的无参构造函数");
    }
}
package javase5;

public class Cat extends Animal{

    public Cat() {
//      super(); 
//就算不写super();这行代码,系统也会默认自动调用父类的无参构造函数
        System.out.println("我是Cat类的无参构造函数");
    }

    public static void main(String[] args) {
        Cat cat = new Cat();
        System.out.println(cat.age);
    }

}
  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 C/C++程序详细注解
      • ¥30 django项目,配值nginx 和 awsgi ,POST 不起作用,请教!
      • ¥15 数据集形式转换,将下面转换成上面的形式
      • ¥15 pmp项目管理干系人分析
      • ¥15 请问DenseNet图像输入大小是否是固定的?
      • ¥15 template模板的参数问题
      • ¥15 查找处理学生信息问题,含多个文件,显示问题是无法调用其中一个文件
      • ¥15 simulink生成代码后提示告警
      • ¥16 jieba提取高频词,生成文件是空的
      • ¥15 怎么读取服务器中的文件去配置mongo的连接