gpt4 book ai didi

使用 super 的 Java 继承

转载 作者:行者123 更新时间:2023-11-29 05:40:52 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的 java 继承程序以及使用 super 和 this 关键字。此处显示学生在 2 个学期 sem1 和 sem2 的三个科目中的分数。我想显示总分,即。 S1T(Sem1 total), S2T(Sem 2 total) and also grand total..

//Student Record Keeping System
class Sem1
{
int a,b,c,S1T,S1GT;
Sem1(int a,int b,int c)
{
this.a=a;
this.b=b;
this.c=c;
}

void total()
{
S1T=a+b+c;
S1GT=S1T;
}


void display()
{
System.out.println("S11: "+a);
System.out.println("S12: "+b);
System.out.println("S13: "+c);
System.out.println("S1Total: "+S1T);
System.out.println("S1Gtotal: "+S1GT);
System.out.println("");
}

}

class Sem2 extends Sem1
{
int p,q,r,S2T,S2GT;
Sem2(int p,int q,int r)
{
this.p=p;
this.q=q;
this.r=r;
}

void total()
{
S2T=p+q+r;
S2GT=S2T+S1T;
}


void display()
{
super.display();
System.out.println("S21: "+p);
System.out.println("S22: "+q);
System.out.println("S23: "+r);
System.out.println("S2Total: "+S2T);
System.out.println("S2Gtotal: "+S2GT);
System.out.println("");
}

}

这里是主类

class StudentRcd
{
public static void main(String abc[])
{
Sem1 obj = new Sem1(10,20,30);
obj.total();
obj.display();

Sem2 obj1 = new Sem2(20,30,40);
obj1.total();
obj1.display();
}
}

错误:类 Sem2 中的构造函数 Sem2 无法应用于给定类型; { ^ 要求:整数,整数,整数 发现:没有参数 原因:实际和形式参数列表的长度不同

请帮帮我..

最佳答案

我不认为你真的想要两个单独的类。除了第 2 学期总计的计算外,这两个类(class)大部分相同。一个类有两个单独的实例,并分别计算全年总数可能会更好。

如果您确实想要两个通过继承关联的类,那么您要么需要在 Sem2 的构造函数中调用 super(),因为 Sem1 缺少默认构造函数。这可能需要您在 Sem2 的构造函数中提供额外的值,因为第 1 学期的分数与第 2 学期的分数不同。

class Sem2 extends Sem1
{
int p,q,r,S2T,S2GT;
Sem2( int a, int b, int c, int p,int q,int r)
{
super( a, b, c );
this.p=p;
this.q=q;
this.r=r;
}

关于使用 super 的 Java 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660435/

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