天天看點

覆寫(重寫),重構,重載的差別

1:重構:

重構, 是對軟計設計方法的描述, 這個層面是架構和設計方法,例如有一個文檔一開始叫做:names.txt,過幾天你發現這個文檔的名字怎麼看怎麼不順眼,就是想改名字,這可以叫做是重構。

重構是一個軟體維護的通用技巧, 重構的具體做法, 可以通過重寫或者重載等, 但不限于此, 更改注釋, 更改函數名類名等,都可以稱之為重構,重構的目的是為了讓軟體容易維護, 修改其Bug等.

2:重載:

重載(Overload)就是通過方法的參數識别不同的函數

例如我們對構造函數的重載:

1 package chongzai;
 2 
 3 public class Overloads {
 4     private String name;
 5     private int age;
 6     private String loc;
 7     private String sex;
 8     private int cour;
 9     
10     public Overloads(String name, int age, String loc, String sex, int cour) {
11         super();
12         this.name = name;
13         this.age = age;
14         this.loc = loc;
15         this.sex = sex;
16         this.cour = cour;
17     }
18 
19     public Overloads(String name, int age) {
20         super();
21         this.name = name;
22         this.age = age;
23     }
24     
25     public Overloads(String name, int age, String loc, String sex) {
26         super();
27         this.name = name;
28         this.age = age;
29         this.loc = loc;
30         this.sex = sex;
31     }
32     
33 }      

重載的規則:

1、必須具有不同的參數清單;

2、可以有不同的傳回類型,隻要參數清單不同就可以;

3、可以有不同的通路修飾符;

4、可以抛出不同的異常;

5、方法能夠在一個類中或者在一個子類中被重載。

3:覆寫(重寫):

override(Overwrite)是子類覆寫基類的方法.

package chongzai;

public class Father {//父類
    public void out(){
        System.out.println("woshigg");
    }
}      
1 package chongzai;
 2 
 3 public class Son extends Father{//子類
 4     @Override
 5     public void out() {
 6         // TODO Auto-generated method stub
 7         System.out.println("aaaaaaaaaaaaa");
 8         System.out.println("bbbbbbbbbbbb");
 9     }
10 }      

子類不想使用父類預設繼承過來的方法,自己對方法進行改造;

歡迎大家一起說出自己的想法。

繼續閱讀