小编典典

说明错误:“构造函数……无法应用:实际长度和形式长度不同”

java

请帮助我解决此错误:

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个公共课程:CollegeMember,Student和Professor。学生和教授是CollegeMember的子类。CollegeMember具有字符串名称字段和字符串telNumber字段。它的构造函数有2个参数,它们为name和telNumber字段提供初始值。CollegeMember还具有访问器方法getName和getTelNumber,分别返回名称和telNumber。Student有一个int
year字段(1 =第一年,2 =第二年,3 =第三年,4
=第四年)。其构造函数具有3个参数:name,year和telNumber,它们为name,year,和telNumber字段。它还具有返回年份的访问器方法getYear。教授具有int等级字段(1
=助理,2 =关联,3
=完整)。其构造函数具有3个参数:name,rank和telNumber,它们为name,rank,和telNumber字段。它还有一个访问器方法getRank返回等级。使用main方法创建一个C10h1类。在类文件中包含javadoc注释。使用javadoc创建文档文件。


阅读 220

收藏
2020-11-30

共1个答案

小编典典

问题是您的Student构造函数。它需要链接到CollegeMember构造函数,它应该像这样:

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

同样对于Professor,只用rank代替year

请注意,您 并不 需要设置nametelNumber在这些构造-
这是的工作CollegeMember你要链接构造。如果将所有字段都设为私有,那也更好-那么您甚至无法 尝试
在子类中设置这些字段…这很有意义,因为它们不是子类的责任。

2020-11-30