2016-11-22 110 views
-3

Super是非静态变量,所以它应该与一些对象引用一起使用。 但是在这里下面,对象还没有创建,所以在哪个对象超级被称为?关于构造函数,超级和继承

class A{} 
class B extends A{ 
B() { super(); } 

如果在主方法中创建了B的对象。

+0

构造函数有一个非常具体的签名,用于跟踪'[visibility] ClassName([Parameters ...])''。为什么你会习惯使它变成静态的? – AxelH

+0

我不确定你想达到什么目的,但是静态模块可以满足你的要求。 'static {//在加载类时需要调用的任何代码,甚至在调用任何构造函数之前} – Karthikeyan

+0

我建议你先看看这个答案。 http://stackoverflow.com/a/3903551/762395 – root

回答

0

构造函数不是静态的。这很明显,因为您可以在构造函数中使用this。它的工作对象已经被分配,它只是没有完全初始化。

+0

我不'因为'this'不仅限于构造函数,而且可以从每个非静态方法中看到。你只是说构造函数不是静态的;) – AxelH

+0

我不擅长解释,这就是我所要求的,class A {} class B extends A {},现在如果我在main中创建B的对象, A的什么对象构造函数被调用? – sanidhya