调用父类和子类重载方法的Java最佳实践

问题描述 投票:0回答:1

调用父类和子类都重载的方法的最佳方法是什么 例如。说我有亲子班

    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 方法,如何在不显式地将对象强制转换为子对象的情况下调用子方法?

java design-patterns
1个回答
0
投票

在我看来,您应该在超类

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.