这是我第一次在 Stack Overflow 上发帖,但我在正在从事的项目(用 Java 编写)的早期步骤中遇到了麻烦,正在寻求指导。我搜索了论坛,但仍然很难理解我所犯的错误。
我正在创建一个类似青少年电子邮件的系统,更具体地说,正在研究类层次结构和继承。我的父类(super class)是Attachments,它的子类是ContainsDescription。
编译时,错误发生在ContainsDescription子类的构造函数中。该错误显示“实际参数列表和形式参数列表的长度不同”,我不太知道如何解释。我的代码如下:
public class Attachments
{
private String filename;
private int size;
public Attachments(String filename, int kilobytes)
{
this.filename = filename;
size = kilobytes;
}
public void preview()
{
System.out.println("Filename: " + filename + "\n");
System.out.println("Size: " + size + " kB" + "\n");
}
}
public class ContainsDescription extends Attachments
{
private String description;
public ContainsDescription(String description)
{
this.description = description;
}
}
我们将非常感谢一些指导,因为我的项目的大部分内容都包含这样的任务。
最佳答案
您必须在 ContainsDescription
中提供一个构造函数,它采用父类(super class)的参数。
你必须将它们结合起来:
public class ContainsDescription extends Attachments
{
private String description;
public ContainsDescription(String description, String filename, int kilobytes)
{
super(filename, kilobytes);
this.description = description;
}
}
如果不这样做,它将无法构造父类(super class)。
如果您确实只想要一个采用 Description
作为参数的构造函数,您可以提供默认值:
public class ContainsDescription extends Attachments
{
private String description;
public ContainsDescription(String description)
{
super("", 0);
this.description = description;
}
}
关于java - Java中的类层次结构编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136442/