基本都是和书上格式是一样的
我只是为了熟悉一下构造自己写了
但是始终有错误很郁闷
上网看了  报错的 原因 
云里雾里
然后有的说是和像在C++里面一样的在构造函数后面加一个表
我也不是很清楚在JAVA中到底构造函数怎么进行其父类的调用
希望可以解答一下

class People{
private String name;
private String sex;
private String ID;
public void Peopel(String n1,String s1,String i1){
name = n1;
sex = s1;
ID = i1;
}
public void Display(){
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("ID:"+ID);
}
}

class Student extends People{
private String xuehao;
private String banji;
public Student(final String n,final String s,final String i,final String x,final String b){
super();
xuehao = x;
banji = b;
}
public void Display(){
super.Display();
System.out.println("学号:"+xuehao);
System.out.println("班级:"+banji);
}
}

public class Test {
public static void main(String[]args){
//是下面一行有错 eclipse 是在第一个Carey 下面标注的红色波浪线,不明白哪里有错误
Student k = new Student( 'Carey' , '女' , '342916' , '0855150' , '信科');
k.Display();
}
}
//书上的构造函数是不用void的 但是在eclipse里提示有错 我加上后就没错了 这个也不明白是哪里的问题
//
只要是用心都有分,晚上来结贴。谢谢

解决方案 »

  1.   

    Student k = new Student( 'Carey' , '女' , '342916' , '0855150' , '信科');
    改成
    Student k = new Student( “Carey” , '女' , '342916' , '0855150' , '信科');
      

  2.   


    package com.keeya.csdn.test;class People {
    private String name; private String sex; private String ID; public People(String n1, String s1, String i1) {
    name = n1;
    sex = s1;
    ID = i1;
    } public void Display() {
    System.out.println("姓名:" + name);
    System.out.println("性别:" + sex);
    System.out.println("ID:" + ID);
    }
    }class Student extends People {
    private String xuehao; private String banji; public Student(String n, String s, String i, String x, String b) {
    super(n,s,i);
    xuehao = x;
    banji = b;
    } public void Display() {
    super.Display();
    System.out.println("学号:" + xuehao);
    System.out.println("班级:" + banji);
    }
    }public class Test {
    public static void main(String[]args){
    // 是下面一行有错 eclipse 是在第一个Carey 下面标注的红色波浪线,不明白哪里有错误
    Student k = new Student( "Carey" , "女" , "342916" , "0855150" , "信科");
    k.Display();
    }
    }
    // 书上的构造函数是不用void的 但是在eclipse里提示有错 我加上后就没错了 这个也不明白是哪里的问题
      

  3.   


    public Student(final String n,final String s,final String i,final String x,final String b){
    super(n,s,i);//调用构造函数
    *************
      

  4.   

    看标注package com.keeya.csdn.test;class People {
    private String name; private String sex; private String ID; public People(){

    }


    //此处楼主你的方法名写错了 加了void后就成了一个普通方法
    //之前没加void报错是因为你的方法名没和类名一样的时候就是普通方法,普通方法得有返回类型;
    public People(String n1, String s1, String i1) {
    name = n1;
    sex = s1;
    ID = i1;
    } public void Display() {
    System.out.println("姓名:" + name);
    System.out.println("性别:" + sex);
    System.out.println("ID:" + ID);
    }
    }class Student extends People {
    private String xuehao; private String banji; public Student(String n, String s, String i, String x, String b) {
    //此处调用的是父类的有构造函数,如果不传入参数,在父类没有无参构造函数的时候还会报错
    //本例中父类因为定义了有参构造函数,就不会再被默认有无参的那个了
    //如果需要的话也可以给父类手动加上无参构造函数(见父类)
    super(n,s,i);
    xuehao = x;
    banji = b;
    } public void Display() {
    super.Display();
    System.out.println("学号:" + xuehao);
    System.out.println("班级:" + banji);
    }
    }public class Test {
    public static void main(String[]args){
    // 是下面一行有错 eclipse 是在第一个Carey 下面标注的红色波浪线,不明白哪里有错误
    //你的参数类型是 string (用 “”)但你此处用的都是 char(用 ‘’) 
    Student k = new Student( "Carey" , "女" , "342916" , "0855150" , "信科");
    k.Display();
    }
    }
    // 书上的构造函数是不用void的 但是在eclipse里提示有错 我加上后就没错了 这个也不明白是哪里的问题
      

  5.   

    怎么标注颜色没了 再发下package com.keeya.csdn.test;class People {
    private String name; private String sex; private String ID; public People(){

    }


    此处楼主你的方法名写错了 加了void后就成了一个普通方法
    之前没加void报错是因为你的方法名没和类名一样的时候就是普通方法,普通方法得有返回类型;
    public People(String n1, String s1, String i1) {
    name = n1;
    sex = s1;
    ID = i1;
    } public void Display() {
    System.out.println("姓名:" + name);
    System.out.println("性别:" + sex);
    System.out.println("ID:" + ID);
    }
    }class Student extends People {
    private String xuehao; private String banji; public Student(String n, String s, String i, String x, String b) {
    此处调用的是父类的有构造函数,如果不传入参数,在父类没有无参构造函数的时候还会报错
    本例中父类因为定义了有参构造函数,就不会再被默认有无参的那个了
    如果需要的话也可以给父类手动加上无参构造函数(见父类)

    super(n,s,i);
    xuehao = x;
    banji = b;
    } public void Display() {
    super.Display();
    System.out.println("学号:" + xuehao);
    System.out.println("班级:" + banji);
    }
    }public class Test {
    public static void main(String[]args){
           是下面一行有错 eclipse 是在第一个Carey 下面标注的红色波浪线,不明白哪里有错误
            你的参数类型是 string (用 “”)但你此处用的都是 char(用 ‘’) 

    Student k = new Student( "Carey" , "女" , "342916" , "0855150" , "信科");
    k.Display();
    }
    }
    // 书上的构造函数是不用void的 但是在eclipse里提示有错 我加上后就没错了 这个也不明白是哪里的问题
      

  6.   


    class People{
    private String name;
    private String sex;
    private String ID;
    public People(String n1,String s1,String i1){
    name = n1;
    sex = s1;
    ID = i1;
    }
    public void Display(){
    System.out.println("姓名:"+name);
    System.out.println("性别:"+sex);
    System.out.println("ID:"+ID);
    }
    }

    class Student extends People{
    private String xuehao;
    private String banji;
    public Student(String n, String s, String i, String x, String b){
    super(n,s,i);
    xuehao = x;
    banji = b;
    }
    public void Display(){
    super.Display();
    System.out.println("学号:"+xuehao);
    System.out.println("班级:"+banji);
    }
    }

    public class Test {
    public static void main(String[]args){
    Student k = new Student( "Carey" , "女" , "342916" , "0855150" , "信科");
    k.Display();
    }
    }
    我按照您的方法改了  但是依然报错
    很抱歉将people给打错了,打成peopel   很对不起希望可以得到您的答复  谢谢
      

  7.   


    我好了   是我自己在里面又加了一个项目之类的 导致的吧
    工具也是才用 
    我用记事本 在DOS下编译时可以的   非常感谢
    结贴~