1
xuming 2014-06-05 01:03:53 +08:00
a的类型是A,怎么会有bb属性呢?
在代码里把 a 强制转换成B类型,或许可以。 貌似,父类获取子类属性,不是好习惯。 |
2
SoloCompany 2014-06-05 01:07:56 +08:00
「资深swifter」楼主是来搞笑的吗
|
3
Channing 2014-06-05 01:16:00 +08:00
|
4
stonestyle OP |
5
thuai 2014-06-05 09:18:34 +08:00
@xuming 同意。强转是一个办法。@stonestyle 你无法确定传入的A就一定是B的对象。也有可能是同样继承A的C对象,C中没有bb。你怎么玩?
|
6
jsonline 2014-06-05 09:42:05 +08:00 via Android
父类获取子类属性?一听就不科学。
|
7
SoloCompany 2014-06-06 00:27:24 +08:00
你可以参考一下,这是 jetbrains 家的 IDE 在 java 语言为一个 class 自动生成的 equals 方法
在这种场景下,一切什么不建议强制转换的设计指引都是浮云,不存在什么优雅的方法 ~~~ java @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof OOXX)) return false; OOXX ooxx = (OOXX) o; if (!id.equals(ooxx.id)) return false; if (data != null ? !data.equals(ooxx.data) : ooxx.data != null) return false; return true; } ~~~ |