Jor*_*bot 2 java inheritance instanceof
我有两个类A和B,其中B是A的子类,A不是抽象的.因此,我可以拥有作为A实例的对象和作为B实例的对象(因此也是A的实例).
如何区分仅为A实例的对象?
当然,我可以编写类似"对象instaceof A &&!(B的对象实例)"但这是一个非常糟糕的设计,因为每次我向A添加新的子类时我都需要更改代码.更好的选择?
为什么要让他们区分?通常这与OO相反.您有不同的实例,您不需要区分,因为不同的实现做了一切正确.
如果你需要这样做,应该有一个协议.有一个方法可以返回要识别的东西.这也更灵活.
如果没有充分理由使用它,我会将instanceOf和getClass考虑为坏样式