gpt4 book ai didi

java - 继承: How child class interact with its parent?

转载 作者:行者123 更新时间:2023-11-30 04:10:10 27 4
gpt4 key购买 nike

我有以下代码:

class Shoe {
public Shoe(){
this("thise a shoe");
System.out.println("Base Class");
}
public Shoe(String s){
System.out.println(s);
}
}

class TennisShoe extends Shoe {
public TennisShoe (){
this("This is a Tennis Shoe");
System.out.println("Derived Class");
}
public TennisShoe(String s){
super("Exam 1");
System.out.println(s);
}
}

class WhiteTennisShoe extends TennisShoe {
public WhiteTennisShoe(String s){
System.out.println(s);
}
}

class Test{
public static void main(String [] args){
new WhiteTennisShoe("A White Tennis Shoe is Created");
}

}

输出是:

<小时/>

考试 1

这是一双网球鞋

派生类

白色网球鞋已制作完成

<小时/>

我只是不明白为什么编译器没有

WhiteTennisShoe类中的构造函数public WhiteTennisShoe(String s)

TennisShoe类中的构造函数public TennisShoe (String s)

最佳答案

在此构造函数中

public WhiteTennisShoe(String s){
System.out.println(s);
}

您没有指定应使用 TennisShoe 的哪个构造函数 - 没有 super 行。当你这样做时,编译器会自动选择不带参数的父类(super class)构造函数;如果没有这样的构造函数可用,这将是一个编译错误(尽管如果根本没有为父类(super class)定义构造函数,它将创建自己的构造函数)。

因此,被调用的 TennisShoe 构造函数是

public TennisShoe (){
this("This is a Tennis Shoe");
System.out.println("Derived Class");
}

当然,它会调用另一个 TennisShoe 构造函数。

关于java - 继承: How child class interact with its parent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811198/

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