[Java] 抽象类为什么不能实例化

大家知道,抽象类和接口都是不能实例化的,但是为什么呢?看看以下解释:

1.哲学上:

面向对象思想是对现实社会的模拟(抽象),从哲学上讲进化不完全的物种是不能生存的! 所以对于一个抽象性的东西,它是不完整的,也就没法实例,就好比买水果,显然是买不到一种叫“水果”的东西的。

2.内存中:

抽象类只在内存中分配了在栈中的引用,没有分配堆中的内存。程序都有一个代码段, 在内存中需要占据一定的内存,而抽象类有抽象方法,没有具体的实现方法,无法具体的给它分配内存空间,所以为了安全, JAVA不允许抽象类,接口直接实例化。

发表评论

电子邮件地址不会被公开。 必填项已用*标注