调用父类和子类都重载的方法的最佳方法是什么 例如。说我有亲子班
private class Parent{
public Parent() {
}
}
private class Child extends Parent{
String name;
public Child(String name) {
this.name = name;
}
}
我想创建一个对两者都重载的方法
private void methodCall(Parent parent){
System.out.println("Parent class");
}
private void methodCall(Child child){
System.out.println(child.name);
}
我创建了一个方法来创建父级或子级并调用 methodCall 方法
private void callMethod(String name){
Parent parent;
if(name != null) {
parent = new Child(name);
} else {
parent = new Parent();
}
methodCall(parent);
}
这似乎总是调用 Parent 方法,如何在不显式地将对象强制转换为子对象的情况下调用子方法?
在我看来,您应该在超类
Parent
中创建一个名为 methodCall() 的方法,并分别在 Child
中将其重写为 f
protected void methodCall(){
System.out.println("Parent class");
}
在课堂上
Child
private void methodCall(){
System.out.println(this.name);
}
然后你就这样调用
methodCall
private void callMethod(String name){
Parent parent;
if(name != null) {
parent = new Child(name);
} else {
parent = new Parent();
}
parent.methodCall();
}