当前位置: 首页 > 知识库问答 >
问题:

解释错误:“构造函数…不能应用:actual和formal的长度不同”

索正豪
2023-03-14

请帮助我修复此错误:

类C10H1中的构造函数CollegeMember。CollegeMember不能应用于给定类型;必需:java.lang.String、java.lang.String;找到:没有论点;理由:实际论点和正式论点的长度不同

此外,我尝试添加一个默认构造函数来调用super,但它只是给了我另一个错误!

代码

class C10h1
{

        public static void main(String[] args)
        {
        Student s = new Student("Bert", 2, "555-5555");
        System.out.println("name = " + s.getName());
        System.out.println("year = " + s.getYear());
        System.out.println("telephone = " + s.getTelNumber()); 
        Professor p = new Professor("Jane", 1, "555-9999");
        System.out.println("name = " + p.getName());
        System.out.println("rank = " + p.getRank());
        System.out.println("telephone = " + p.getTelNumber()); 
        }
}
class CollegeMember
{


    String name, telNumber;
    public CollegeMember(String a, String b) 
    {
        name = a; 
        telNumber = b; 
    }
    public String getName()
    {
        return name;
    }
    public String getTelNumber()
    {
        return telNumber;
    }
}
class Student extends CollegeMember
{

    int year;
    public Student(String name, int year, String telNumber)
    {
       name = super.getname();
       year = year;
       telNumber = super.getTelNumber();
    }
    public int getYear()
    {
        return year;
    }
}
class Professor extends CollegeMember
{

    int rank;
    public Professor(String name, int rank, String telNumber)
    {
       name = super.getname();
       rank = rank;
       telNumber = super.getTelNumber();
    }
    public int getRank()
    {
        return rank;
    }
}

问题提示:

创建3个公共类:大学生、学生和教授。Student和Professor是CollegeMember的子类。CollegeMember有一个字符串名称字段和一个字符串telNumber字段。它的构造函数有两个参数,为name和telNumber字段提供初始值。CollegeMember还有分别返回name和telNumber的访问器方法getName和getTelNumber。Student有一个int year字段(1=第一年,2=第二年,3=第三年,4=第四年)。其构造函数有三个参数:name、year和telNumber,这些参数为name、year和telNumber字段提供初始值。它还有一个访问器方法getYear返回Year。教授有一个int rank字段(1=助理,2=助理,3=全)。它的构造函数有3个参数:name、rank和telNumber,它们为name、rank和telNumber字段提供初始值。它还有一个返回rank的访问器方法getRank。使用main方法创建一个C10h1类。在类文件中包含javadoc注释。使用javadoc创建文档文件

共有1个答案

汪典
2023-03-14

问题是您的student构造函数。它需要链接到collegeMember构造函数,它应该这样做:

public Student(String name, int year, String telNumber) {
    super(name, telNumber);
    this.year = year;
}

对于教授也是如此,只是使用等级而不是年份

注意,您不需要在这些构造函数中设置nametelnumber-这是您链接到的CollegeMember构造函数的工作。如果您将所有字段都设置为私有字段也会更好--这样您甚至无法尝试在子类中设置这些字段...这是有道理的,因为它们不是子类的责任。

 类似资料: