此消息严格适用于Java.如果方法在超类中,则可以通过两种方式调用该方法:
foo();
super.foo();
Run Code Online (Sandbox Code Playgroud)
总是做后者有什么害处吗?作为一种编码风格,我更喜欢后者,因为一眼就能看出方法调用的来源.在任何情况下,"超级"将不存在或不做我认为会做的事情吗?
我认为你可能遇到的唯一伤害就是当你想要使用多态时,如果你调用foo()并且某些子类覆盖了foo,那么效果会比你调用时有所不同super.foo(),基本上,它取决于你如何设计代码和目的是什么
希望这说清楚.
作为一般规则,您应该只super.foo()在类foo()方法中使用.总的来说,不这样做违背了OOP的思想.
因为一眼就可以看出方法调用的来源
在OOP中,您不应该知道方法调用"来自"的位置.如果你的程序(或你的思维)是取决于,你是在潜在的问题(并很可能会在实际的麻烦时,有人决定要覆盖的方法).该方法myobject.foo()必须从外部作为MyObject来的类的方法中可以看出; 如果该方法实际上在其父级的具体类中实现,则无关紧要.
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |