Rap*_*oth 11 java oop interface
我知道实现接口意味着什么(技术上),但我不确定我是否理解"合同"包含的内容:
比方说,我做的一类MyList,它实现java.util.List(也就是我实现与编译代码的所有方法),是MyList一个List呢?或者我是否需要阅读我覆盖的方法的所有注释,并确保我的实现满足这些行为的"期望"?
JB *_*zet 12
从技术上讲,是的,MyList是List如果它实现的所有方法List的接口.但编译器不是魔术师.它无法检查您的方法是否应该执行它们应该执行的操作.当然,每种方法都应该按照文档所说的那样做.
如果我收到一个List,这List是一个实例MyList,并且我打电话list.add("foo"),我希望在列表的末尾添加"foo".不被删除,或添加两次,或其他任何行为.因此,当然,如果您的类实现List,其方法应符合其API文档中定义的合同.
想象一下你卖车.我去你的商店买车.对我来说,它是一辆汽车,因为它看起来像所有其他汽车:它有车轮,踏板,窗户等.但是,如果我按下加速器,它会刹车,当我打开灯时,它鸣喇叭,当我打开窗户,它加速并杀死一个可怜的孩子在路上,我会不高兴你会遇到麻烦,因为你卖给我的车行为不正确.
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |