日期:2014-05-20  浏览次数:21311 次

构造方法如果是设了有参构造方法,是不是"一定要显式"定义无参构造函数.
父类和子类是不是都是这样的...

------解决方案--------------------
是滴!!!

当你一个也没写的时候,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 子类(),也会在父类写无参构造。