子类对象的构造函数的参数是父类对象时,同名方法可以被代替吗,怎么写
时间: 2024-10-14 08:10:43 浏览: 50
当子类的构造函数接受父类类型的参数时,这种设计称为隐式转换构造函数(Implicit Upcast Constructor),它确实可以利用已存在的父类方法。子类可以通过重写父类的方法并将其作为构造函数的一部分来提供扩展。例如,在Java中,你可以这样写:
```java
class ParentClass {
public ParentClass(String param) { /* ... */ }
}
class ChildClass extends ParentClass {
// 使用父类的参数
public ChildClass(ParentClass parent) {
super(parent); // 调用父类的构造函数
// 如果有同名方法,可以在构造内部覆盖或调用
this.myMethod(parent.myMethod());
}
@Override
public void myMethod(String arg) { /* 子类的实现 */ }
}
```
在这个例子中,`ChildClass`的构造函数接收一个`ParentClass`类型的对象,并通过`super(parent)`调用了父类的构造函数。如果`ParentClass`有一个名为`myMethod`的方法,子类会在构造过程中使用它。当然,只有当子类中也有名为`myMethod`并且参数匹配的情况下才能这么做。
阅读全文
相关推荐


















