gpt4 book ai didi

Java 继承示例

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:31 27 4
gpt4 key购买 nike

下面是继承的例子

class Parent {
Parent(int a, int b) {
int c = a + b;
System.out.println("Sum=" + c);
}
void display() {
System.out.println("Return Statement");
}
}
class Child extends Parent {
Child(int a, int b) {
int c = a - b;
System.out.println("Difference=" + c);
}
}
public class InheritanceExample {
public static void main(String args[]) {
Child c = new Child(2, 1);
c.display();
}
}

当我没有非参数化构造函数 parent() 时出现以下错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor

at Child.<init>(InheritanceExample.java:14)
at InheritanceExample.main(InheritanceExample.java:22)

你能解释一下基类中不带参数的构造函数的目的是什么吗?

最佳答案

class child extends parent
{
child(int a,int b)
{
int c=a-b;
System.out.println("Difference="+c);
}
}

子类构造函数必须做的第一件事是调用父类构造函数。如果您没有明确地执行此操作(例如 super(a,b)),则暗示调用默认构造函数(super())。

为此,您必须拥有此默认构造函数(不带任何参数)。

如果您不声明任何构造函数,您将获得默认构造函数。如果至少声明一个构造函数,则不会自动获取默认构造函数,但可以再次添加。

您收到的错误消息是提示对 super() 的隐含调用不起作用,因为父类中没有这样的构造函数。

两种修复方式:

  1. 添加默认构造函数
  2. 在子构造函数的第一行,调用一个非默认的父构造函数(super(a,b))

此外,请不要使用全小写的类名。

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

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