Java关于抽象类能否被实例化的问题

首先明确地说:抽象类不能被实例化。

我对抽象类能否被实例化产生疑问始于我看到一句话说:子类实例化会先实例化父类。而且,自己也知道,抽象类作为父类,其子类是能调用他的属性和已实现方法的。这证明抽象父类在内存是有一定空间的。(百度百科说:实例化其实就是在内存中开放一个空间用于存储新的产物,即对象)

后来发帖问了,总结得到:子类实例化会先初始化父类,父类初始化并不是又创建一个父类对象,而是把父类中定义的对象相关属性都初始化,因为这些属性子类对象也是拥有的。所以,为了保证子类对象的完整性,要从最底层的父类开始,逐级初始化,所有初始化都完成后才会生成一个完整的子类对象。(也就是要区分开实例化和初始化)


其实也可以这么理解,抽象类的作用是对一类事物的描述和定义,所以他并不特指某一个东西,因为他是抽象的。(不要像我之前那样去钻牛角尖)

你可能感兴趣的:(Java)