gpt4 book ai didi

java - 关于抽象类和继承的问题

转载 作者:行者123 更新时间:2023-12-01 07:14:35 25 4
gpt4 key购买 nike

我有一个名为 Customer 的抽象类,它具有所有客户之间共享的一些属性(例如 ID、姓名、姓氏)。

然后我有几个类,例如 PriorityCustomers,它们具有特殊的唯一字段,例如(高度、宽度)、MidPriorityCustomers 等。

当我这样做时:

Customer customer = new PriorityCustomer();

我无法访问优先客户方法。当我尝试其他方式时,我无法实例化抽象类。

我使用它是因为我想通过相同的流程处理所有客户,只有那些有特殊需求的客户才能为他们做一些特别的事情。

因此,我的方法返回 Customer 类型。我在这里的设计做出了错误的决定吗?有人可以提出建议吗?

忘了提及:

我在父抽象类中拥有的字段在特殊客户类中没有,反之亦然。(客户类中没有高度、宽度,但这些在 PriorityCustomers 类中)

最佳答案

听起来当你想要特定的方法时你有一个 super 处理方法。

abstract class Customer {
public abstract returnType process(args);
}

class PriorityCustomer extends Customer {
public returnType process(args) {
// process PriorityCustomer
}
}

class MidPriorityCustomer extends Customer {
public returnType process(args) {
// process MidPriorityCustomer
}
}

那么你需要做的就是

for(Customer customer: customers)
customer.process(args);

这将允许您处理所有客户类型,其中每个客户类型都知道它需要什么特殊处理。

关于java - 关于抽象类和继承的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950765/

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