构造方法如果是设了有参构造方法,是不是"一定要显式"定义无参构造函数.
父类和子类是不是都是这样的...
------解决方案-------------------- 是滴!!!
当你一个也没写的时候,JVM就自己给一个无参默认的.
当你写了时,JVM就不会自作多情了!
------解决方案-------------------- 不是,你可以不定义,无所谓。不过如果父类没有无参数的构造方法的话,子类的构造方法中必须显式调用父类的带参数的构造方法。
------解决方案-------------------- 一般情况下,没有必要一定要显式定义无参构造函数。但如果是Java Bean,是需要定义一个的。
------解决方案-------------------- 用事实说话..
Java code
class Animal {
public Animal(String string){
System.out.println("OK");
}
}
class Dog extends Animal{
public Dog(String string) {
super(string);
System.out.println("NOT ok");
}
}
------解决方案-------------------- 探讨 不是,你可以不定义,无所谓。不过如果父类没有无参数的构造方法的话,子类的构造方法中必须显式调用父类的带参数的构造方法。
------解决方案-------------------- 探讨 一般情况下,没有必要一定要显式定义无参构造函数。但如果是Java Bean,是需要定义一个的。
------解决方案-------------------- 探讨 引用: 一般情况下,没有必要一定要显式定义无参构造函数。但如果是Java Bean,是需要定义一个的。 继承中,当你定义一个显示有参构造时,一般情况下,都需要定义一个无参构造方法,Java里貌似没有"函数"这么概念。 比如继承中有 父父类-父类-子类,在子类时,我需要传递参数时就new 子类(参数列表);我不需要传递参数时,就new 子类(), 多么方便,有时尽管不需要new 子类(),也会在父类写无参构造。
------解决方案-------------------- 探讨 强烈顶 java也没有静态数据区,以前看到static数据存到哪的时候,很多人说在静态数据区; 那到底存在哪里?????????????????????????????
------解决方案-------------------- 探讨 引用: 一般情况下,没有必要一定要显式定义无参构造函数。但如果是Java Bean,是需要定义一个的。 继承中,当你定义一个显示有参构造时,一般情况下,都需要定义一个无参构造方法,Java里貌似没有"函数"这么概念。 比如继承中有 父父类-父类-子类,在子类时,我需要传递参数时就new 子类(参数列表);我不需要传递参数时,就new 子类(), 多么方便,有时尽管不需要new 子类(),也会在父类写无参构造。