gpt4 book ai didi

Java - 具有互相调用的重载方法的抽象类

转载 作者:行者123 更新时间:2023-12-01 06:46:31 25 4
gpt4 key购买 nike

我有一个具有重载方法的类。

   public class MyCal extends GregorianCalendar {

//constructor
public MyCal(Date date) {
super();
setTime(date);
}

boolean isSameDay(Date date) {
return (isSameDay(new MyCal(date))) {
}

boolean isSameDay(MyCal cal) {
if (...) {
return true;
} else {
return false;
}
}

//abstract String toString(String pattern) {};
//if I have this I can't call new MyCal(date) from above
}

现在我希望该类是抽象的(需要子类实现一些其他方法),并且仍然避免第一个 isSameDay 方法的所有逻辑(调用第二个方法)。如果只是这个方法,我可以做到,但是这种情况在许多其他重载方法上都会重复。

该类是抽象的,我无法实例化它,因此 isSameDay(date) 方法会报告错误...并且真的不想在所有方法上都有逻辑,这也会使该类变得巨大更难维护。有人可以有一个好的方法吗?先感谢您。

最佳答案

删除需要实例化抽象类的逻辑。在上面的示例中,您可以通过颠倒您定义的方法的角色来有效地做到这一点:

boolean isSameDay(Date date) {
if (...) {
return true;
} else {
return false;
}
}


boolean isSameDay(MyCal cal) {
if(cal == null) return false;
return (isSameDay(cal.getTime()));
}

根据需要扩展到其他方法。

关于Java - 具有互相调用的重载方法的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10721333/

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