【发布时间】:2016-03-19 07:57:11
【问题描述】:
当使用来自二级子类的超类构造函数时,它会将参数传递给祖父构造函数还是直接父构造函数?
//top class
public First(type first){
varFirst = first;
}
//child of First
public Second(type second){
super(second); //calls First(second)
}
//child of Second
public Third(type third){
super(third); //calls First(third) or Second(third)?
}
【问题讨论】:
-
假设所有 3 个 Classes 的类型(根据命名约定的类类型)都相同,并且 varFirst 也是 Type 的一个实例,那么 Yes ,您可以尝试示例: 用 int 和每个构造函数 System.out.println(intValue); 替换类型-> 构造函数 Third 将传递一个值,例如 2 到 Second 和 First 但是 sysout 的打印将按照 First-Second-Third 的顺序(简而言之,Third 只会调用 Second,但 Second 会调用 First 和流程继续)
标签: java inheritance constructor super constructor-overloading