【发布时间】:2011-09-07 14:11:19
【问题描述】:
我在某处读到我们无法初始化接口,例如:
interface MyInterface{};
而且下面的代码肯定是非法的:
MyInterface m = new MyInterface();
我记得我读过的文字说:因为new关键字用于为类成员分配内存;所以在接口的情况下,我们只有抽象函数,所以接口中没有什么要分配的;因此,禁止初始化接口。
好的,这对我来说很有意义。
但是在抽象类的情况下,我们可以声明和定义抽象函数,非抽象函数,以及普通变量;那么为什么我们也不允许初始化抽象类呢?因此,我想知道抽象类中的变量(如果有的话)何时以及如何分配内存?
【问题讨论】:
-
在子类调用super()时分配
标签: java interface new-operator abstract