gpt4 book ai didi

java - 重写一个函数只是为了通过调用 super 添加一点功能是不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 07:56:39 25 4
gpt4 key购买 nike

如果我有一个父类 BaseClass 和一个子类 SubClass,并且我希望子类的某些功能略有不同,那么只覆盖原始类、调用 super 并添加一些额外的功能是否是一种不好的做法?

例如:(伪代码)

public class BaseClass{
int fooA();
int fooB();
int fooC();
}

public class SubClass extends BaseClass{
@Override
int fooB(){
int temp = super.fooB();
temp += 1;
return temp;
}

@Override
int fooC(){
System.out.println("I'm doing something extra in fooC!");
return super.fooC();
}
}

我试图防止代码重复,但我觉得我做错了什么或忘记了一些基本的 OOP 内容,所以我想我会问这是否是不好的做法。好久没做继承了;感谢您的任何见解。

最佳答案

除了继承,您还可以执行以下操作:

public class SubClass implements MyInterface {
private MyInterfaceBasicImpl base;

int fooB(){
int temp = base.fooB();
temp += 1;
return temp;
}

int fooC(){
System.out.println("I'm doing something using in fooC in base object!");
return base.fooC();
}
}

这是 Composition 模式的简单示例。由于 Java 中没有多重继承,因此它会让您的代码保持开放以供改进。

关于java - 重写一个函数只是为了通过调用 super 添加一点功能是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41938277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com