- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了以下 Java 程序。但是我一直收到一个错误,说我的构造函数的实际参数和形式参数的长度不同。我不明白问题出在哪里。谁能告诉我我的程序有什么问题以及如何调试它?
class Student
{
String name;
Student(String name)
{
System.out.println("\nThe name of the student is:"+name);
}
}
class Exam extends Student
{
int m1, m2;
Exam(int m1, int m2)
{
System.out.println("\nThe marks obtained in first subject is:"+m1);
System.out.println("\nThe marks obtained in second subject is:"+m2);
}
}
class Result extends Exam
{
int totalmarks;
int compute(int m1, int m2)
{
totalmarks=m1+m2;
return(totalmarks);
}
}
public class StudentTest
{
public static void main(String[] args)
{
Student s = new Student("rose");
Exam e = new Exam(20,20);
Result r = new Result();
System.out.println("\nThe total marks obtained is:"+r.compute(20,20));
}
}
最佳答案
要解决您的问题,您应该删除不必要的继承:
// remove extends Student
class Exam {
// class code here
}
// remove extends Exam
class Result {
// class code here
}
鉴于您的类(class),我看不出 Exam
的原因扩展Student
和 Result
扩展Exam
.
想想extends
作为"is"关系。如果你能说 Exam
,你应该扩展是一个 Student
那Result
是一个 Exam
.在这种情况下没有意义。
当一个类扩展另一个类并调用子类 构造函数时,它需要做的第一件事就是调用父类(super class) 构造函数。如果您不自己调用它,它将被隐式调用。问题是它会尝试调用默认构造函数,但只有在您不创建自己的构造函数时才会创建默认构造函数。
所以当你这样做的时候:
new Exam(20, 20)
确实如此:
Exam(int m1, int m2) {
super(); // implicit call to Student default constructor
System.out.println("\nThe marks obtained in first subject is:"+m1);
System.out.println("\nThe marks obtained in second subject is:"+m2);
}
它正在尝试调用默认的无参数 Student()
构造函数。但是自从你创建了 Student(String name)
,默认不存在。这就是您收到错误的原因。
关于Java错误-实际和形式参数列表长度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427668/
views.py from django.shortcuts import render from basic_app.forms import UserForm,UserProfileInfoFor
我已经将一个程序从 R 翻译成 C++。有问题的程序使用不同的值运行自身的多次迭代,然后生成直方图和绘图。 C++ 图形很挑剔,所以我决定将值保存为 csv 格式并在 R 中绘制它们。文件相当大,对于
假设我们有一个符号,有一个符号值、一个函数值和一个属性列表,我们称它为 q .假设我们有一个函数 f带形参v ,例如(f (v) ... )并调用像 (f q) 这样的函数. 我的问题是:到底传递给
当我在 R 中运行以下代码时, library(mclust) data(iris) mc <- Mclust(iris[,1:4], 3) plot(mc, data=iris[,1:4], wha
我是一名优秀的程序员,十分优秀!