【发布时间】:2012-06-25 19:24:12
【问题描述】:
好的,所以我正在处理一个带有抽象类 A 的项目。假设类 a1、a2 和 a3 都继承自类 A,并带有一些可能对每个子类都是唯一的附加方法。现在,这些对象可以通过用户交互与其他对象配对,但只能配对某些类型的对象,即对象 B 只能使用 a1,对象 C 只能使用 a2,并且用户尝试将它们配对否则会导致告诉他们他们不能。我当然想避免使用 instanceof,因为这在很大程度上是一种不好的做法,但我认为我目前有一个相当严重的脑胀气病例。我想在父类中添加一个 getType() 或一些这样的方法来返回每个子类唯一的字符串,但这感觉很陈旧。获取班级名称的感觉大致相同。我对我的 OO 和多态原则有点生疏,欢迎提出建议。
【问题讨论】:
-
我认为在这种情况下使用 instanceof 没有任何问题,当您使用它在运行时检查类型时,应该在编译时检查类型,这被认为是一种不好的做法,但是您说将由用户进行配对(因此是运行时操作),因此 instanceof 似乎是一个不错的选择
标签: java inheritance polymorphism subclass abstract