java如何有选择地重写类的函数
我有一个抽象类A,它包含两个函数,都是实现的
public void entry(){}
public void exit(){}
在某些情况下,我希望避免在内部进行系统调用。我正在编写一个测试(单独的类),在这里我将进行自己的调用,但我不想干扰代码的正常运行。我可以通过什么方式实现这一点
我想到的一种方法是用这两个函数创建一个接口B,并在实现该接口并包含实际代码的抽象类中创建一个类C。在抽象类中,我将有一个函数来设置我想要使用的接口实例化。例如:
public static void setMockProvider(B provider) {
if (provider != null) {
mockProvider = provider;
} else {
mockProvider = new C();
}
}
然后无论在哪里调用入口和出口函数,我都会做一个模拟提供者。entry()和mockProvider。退出()
# 1 楼答案
我会像你说的那样建议。用这两种方法制作一个接口。并在需要不同实现的地方覆盖它们
接口
A类(抽象类)
B班(其他班)
确保在两个类中都实现了接口
希望这有帮助
干杯
# 2 楼答案
不太确定我是否完全理解这个问题,但您希望在不干扰方法基础工作的情况下进行自己的调用(我假设它们是继承的)
如果可以执行super()调用,super将调用继承自的类的方法