| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 1802 人关注过本帖
标题:大家帮我看一下,在super()函数前加this()编译都不能通过,去掉this() ...
只看楼主 收藏
情丨调
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-21
结帖率:33.33%
  已结贴   问题点数:20  回复次数:8   
大家帮我看一下,在super()函数前加this()编译都不能通过,去掉this()就没问题,为什么呢?



下面是源代码,大家可以跑得看一下 ,谢谢

package TestDemo;

class Person{

String name;

int age;

String address;

Person(){

System.out.println("我是父类无参构造方法。");

}

Person(int age,String name,String address){

this.age=age;

this.name=name;

this.address=address;

System.out.println("我是父类有参构造方法。");

}

void tell(){

System.out.println("我是父类的tell方法。");

}

}

class Student extends Person{

int score;

Student(){

System.out.println("我是子类无参构造方法。");

}

Student(int age,String name,String address,int score){

this();

super(age,name,address);

super.tell();

System.out.println("我是子类有参构造方法");

System.out.println("大家好,我叫"+name+",我今年"+age+"岁,家住"+address+",今天考试我考了"+score+"分!");

}

}

public class Test02 {

public static void main(String[] args) {

new Student();

new Student(20,"张三","北京",100);

}

}




附件: 您没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: address  package  源代码  super  
2015-11-07 21:04
情丨调
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-21
  得分:0 
最近在看super和this关键字,有点混乱
2015-11-07 21:05
情丨调
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-21
  得分:0 
我觉得这样写是没有问题的,那么问题到底出在哪里呢
2015-11-07 21:07
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:74
帖 子:1390
专家分:5957
注 册:2015-3-19
  得分:20 
程序代码:
class Person{

    String name;

    int age;

    String address;

    Person(){

        System.out.println("我是父类无参构造方法。");

    }

    Person(int age,String name,String address){

        this.age=age;

        this.name=name;

        this.address=address;

        System.out.println("我是父类有参构造方法。");

    }

    void tell(){

        System.out.println("我是父类的tell方法。");

    }

}

class Student extends Person{

    int score;

    Student(){
        super(21,"张无忌","湖南");
        System.out.println("我是子类无参构造方法。");

    }

    Student(int age,String name,String address,int score){

        this();
        super.tell();

        System.out.println("我是子类有参构造方法");

        System.out.println("大家好,我叫"+name+",我今年"+age+"岁,家住"+address+",今天考试我考了"+score+"分!");

    }
   

}

public class Test02 {

    public static void main(String[] args) {

        new Student();

        new Student(20,"张三","北京",100);

    }

}

关键字滥用,注意一点即可
this和super都是放在除注释以外的首行

like wind.
2015-11-09 11:13
情丨调
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-21
  得分:0 
回复 4楼 林月儿
先表示感谢,其实这一点我之前有怀疑过,
那现在如果我确实需要同时用“子类的有参构造方法”调用“子类的无参构造方法”和“父类的有参构造方法”的话,代码怎么写呢?
2015-11-09 13:38
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:74
帖 子:1390
专家分:5957
注 册:2015-3-19
  得分:0 
那现在如果我确实需要同时用“子类的有参构造方法”调用“子类的无参构造方法”和“父类的有参构造方法”的话,代码怎么写呢?
在注意我说的关键字置于首行的关键点外
可以通过构造器之间的重载调用来避免我说的注意点
比如调用单参分化任务
程序代码:
Student (int age){
        this();
    }
    Student(){
        this(22,"林月","湖南",88);
    }
    Student(int age,String name,String address,int score){
       super(21,"张无忌","湖南");
    }

like wind.
2015-11-09 14:03
wcao777
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-11-21
  得分:0 
super要放在第一位置
2015-11-25 14:50
GrayJerry
Rank: 4
等 级:贵宾
威 望:10
帖 子:58
专家分:233
注 册:2015-10-20
  得分:0 
super是指向父类的引用,必须放在第一行
2015-11-25 15:37
java彦祖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-1-3
  得分:0 
this()和Super()不能同时出现,因为他们都要位于第一行
2016-01-05 00:29







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085956 second(s), 7 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved