gpt4 book ai didi

java - Java中的类层次结构编译错误

转载 作者:行者123 更新时间:2023-11-30 06:21:40 25 4
gpt4 key购买 nike

这是我第一次在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com