在java里,子类继承父类,为什么在子类的构造函数中不能同时出现this()和supper?又为什么this()和supper()只能作为构造函数第一句出现呢?

解决方案 »

  1.   

    this中已经包括继承来的super了吧
      

  2.   

    语法,就这么规定的.如果this在第一条super怎么办.如果super在第一条this怎么办
      

  3.   

    继承。。super 调用父类
    this 调用自己
      

  4.   

    我们知道在子类中可以调用父类得方法,变量。那么就说父类进行了实例化。但是我们每一次new对象得时候都是new得子类,并没有new父类。
    这是因为jvm帮我们进行了实例化父类。就是在你new子类的时候先实例化父类。
    super 和 this 代表你自己进行手动调用父类得相关构造函数。为了防止你先调用父类得方法,后实例化父类,所以jvm进行了要求,必须在子类的构造函数中第一行进行调用
      

  5.   

    可以不实用super啊,但是如果使用的话就必须为第一行,目的是告诉jvm,你要调用父类的
      

  6.   

    1,不能同时用super 和 this的原因:
        super是调用父类的构造函数,this是调用本类的另外一个构造函数,而这个构造函数又要调用父类的构造函数,一个累只能调用一个构造函数,如果super和this同时使用那么就会出现在一个类中同时调用两个构造函数,怎么可能正确呢?2. 为什么放在第一行:
       因为初始化首先要调用父类的构造函数,对父类进行初始化,所以要放在第一行啊
      

  7.   

    this为当前类的引用
    super:在构造子类对象的时候要首先调用父类的构造,执行完父类构造之后才是子类,正如先有父亲再有儿子是一样的
      

  8.   


    lz还是练练基础知识,有些东西只是规定,不必深究,就像1+1=2,呵呵,以后可不要把super写成supper呀,作为一个程序员要有严谨的习惯,慢慢来!
      

  9.   

    this()和super()必须用在构造第一行,分别调用本类和父类对应构造
      

  10.   

    佩服ia,这么简单的问题,尽然来看的人不少啊,super 与this的调用都不熟悉还隆什么 啊,回家报孩子去吧