gpt4 book ai didi

java - 理解java中的继承

转载 作者:行者123 更新时间:2023-11-29 07:32:22 24 4
gpt4 key购买 nike

虽然我还没有完全研究继承,但我正在练习从书中学到的一些继承概念,但我想只写一个基于继承的简单程序就可以了

public class InheritanceInJava
{
public static void main(String args[])
{
SupperClass_A supperObj_A = new SupperClass_A(20,30,10);
SubClass_A subObj_A = new SubClass_A(10,20,30);
System.out.println(subObj_A.Add());
System.out.println(subObj_A.Multiply());
}
}

class SupperClass_A
{
int num1 ; int num2 ; int num3 ;
SupperClass_A(int a, int b, int c)
{
num1 = a ; num2 = b ; num3 = c;
}
public int Multiply()
{
return num1 * num2 * num3;
}
}

class SubClass_A extends SupperClass_A
{
SubClass_A(int a, int b, int c)
{
num1 = a ; num2 = b ; num3 = c;
}
public int Add()
{
return num1 + num2 + num3;
}
}

但它显示了一个错误:

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

谁能帮我理解为什么这个程序不工作,这个错误的原因是什么?

最佳答案

问题是您的 SubClass_A 构造函数试图隐式调用 SupperClass_A 的无参数构造函数,它不存在。编译器只为没有任何显式定义的构造函数的类自动生成无参数构造函数。

您可以通过显式调用父类(super class)构造函数来修复它:

class SubClass_A extends SupperClass_A
{
SubClass_A(int a, int b, int c)
{
super(a,b,c);
}
public int Add()
{
return num1 + num2 + num3;
}
}

关于java - 理解java中的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40284970/

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