gpt4 book ai didi

java - 传承与类型转换设计

转载 作者:行者123 更新时间:2023-11-30 02:54:17 26 4
gpt4 key购买 nike

考虑以下类层次结构:

interface Transport { ... }

class Car implements Transport {}
class Bicycle implements Transport {}
class Airplane implements Transport {}

每个类都实现一些特定的方法。

在 EJB 代码的某些部分,有一个服务从数据库获取 Transport 实例,并调用特定于 Car 的方法。

Transport transport = getTransport(...);
Car car = (Car) transport;
car.specificCarMethod(...);

有什么好的做法可以避免 Actor 阵容吗?

最佳答案

这是基于意见的;这是我的意见。

如果界面经过精心设计,您就不需要进行强制转换。您可能需要在接口(interface)中发布特定的CarMethod,并在除Car之外的所有类中以空主体实现它。

从 Java 8 开始,您可以为方法指定默认实现,在 Java 8 之前,您可以使用抽象类来代替接口(interface)或除了接口(interface)之外还使用抽象类。

您也可以考虑使用 visitor pattern如果您想将代码与实现接口(interface)的类分离,并避免在接口(interface)中声明某些方法。

关于java - 传承与类型转换设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725237/

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