类名方法名一样称之为构造方法,
1、构造函数的名称必须与类名相同,包括大小写;
2、构造函数没有返回值,也不能用void修饰. 如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误。
3、一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
4、构造方法可以重载,以参数的个数,类型,顺序。
之前回答过,差不多就这样吧,代码可以用
public class Person {
private String name;
private int age;
private String sex;
public Person(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSex() {
return sex;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String toString(){
return "姓名:"+name+"性别:"+sex+"年龄:"+age;
}
}
public class Student extends Person{
private String no;
private int scoreMath;
private int scoreJava;
private int scoreEn;
public Student(String name, int age, String sex,String no,int scoreMath,int scoreJava,int scoreEn) {
super(name, age, sex);
this.no=no;
this.scoreMath=scoreMath;
this.scoreJava=scoreJava;
this.scoreEn=scoreEn;
}
public double aver(){
double avg=(scoreMath+scoreJava)/2.0;
return avg;
}
@Override
public String toString(){
return "姓名:"+super.getName()+",性别:"+super.getSex()+",年龄:"+super.getAge()+",学号:"+no+",平均分"+aver();
}
public static void main(String[] args) {
Student student=new Student("小明", 18, "男", "20220101", 80, 70, 50);
System.out.println(student.toString());
}
}
构造函数没有返回类型,void去掉
你用个String 变量等于toString()函数的返回值就好了啊