作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
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/
我是一名优秀的程序员,十分优秀!