你的位置:首页 > 软件开发 > Java > 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)

编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)

发布时间:2016-09-09 10:00:10
建议6:覆写变长方法也循规蹈矩    在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle)。符合开闭原则(Open-Closed Principle)的主要特征:  1. ...

建议6:覆写变长方法也循规蹈矩  

  在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle)。

符合开闭原则(Open-Closed Principle)的主要特征:

  1.对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。

  2.对于修改是关闭的(Closed for modification)。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。

下面我们看一下覆写必须满足的条件:

  1. 覆写方法不能缩小访问权限;
  2. 参数列表必须与被覆写方法相同;
  3. 返回类型必须与被重写方法的相同;
  4. 重写方法不能抛出新的异常,或者超出父类范围的异常,但是可以抛出更少,更有限的异常,或者不抛出异常。

看下面这段代码:

 1 public class Client6 { 2   public static void main(String[] args) { 3     // 向上转型 4     Base base = new Sub(); 5     base.fun(100, 50); 6     // 不转型 7     Sub sub = new Sub(); 8     sub.fun(100, 50); 9   }10 }11 12 // 基类13 class Base {14   void fun(int price, int... discounts) {15     System.out.println("Base......fun");16   }17 }18 19 // 子类,覆写父类方法20 class Sub extends Base {21   @Override22   void fun(int price, int[] discounts) {23     System.out.println("Sub......fun");24   }25 }

原标题:编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。