重載(Overloading),重置(Overriding),重構(gòu)(Refactoring)
重載和重置都是對方法而言的,而重構(gòu)是對于構(gòu)件或者類或者整個(gè)系統(tǒng)而言的。
重載和重置都是面向?qū)ο蠖鄳B(tài)性的體現(xiàn)。重載是指一個(gè)方法可以有呈現(xiàn)出多種形態(tài)。多種形態(tài)是通過同名的方法可以有不同的參數(shù)類型順序或者不同參數(shù)個(gè)數(shù)實(shí)現(xiàn)的。重置則是子類對從基類繼承的方法的重寫,也叫覆蓋吧。這很容易理解,因?yàn)榧词够惡妥宇愒兕愃疲惖姆椒隙ㄓ胁贿m合子類的地方,這時(shí)候子類就需要對基類的方法重置。重置時(shí)方法參數(shù)的類型、數(shù)量和次序一定要和基類的方法一致,否則就成了重載。
重構(gòu)一般有軟件重構(gòu)和代碼重構(gòu)。軟件重構(gòu)是指在不改變軟件的功能和外部可見性的前提下,對軟件進(jìn)行改造,其目的是為了改善軟件的結(jié)構(gòu),提高清晰性、可擴(kuò)展性和可重用性。代碼重構(gòu)就是在不改變代碼外部情況的對源代碼的修改。重構(gòu)是代碼維護(hù)中很重要,但不增加新的行為。重構(gòu)用于提高代碼的可讀性和改變代碼的結(jié)構(gòu)和設(shè)計(jì),這樣在將來更容易維護(hù)。如果在現(xiàn)有結(jié)構(gòu)下給一個(gè)構(gòu)件或者增加一個(gè)新的行為很困難或者根本不可能,這時(shí)候就需要重構(gòu)這個(gè)構(gòu)件或者類,其目的是為了增加新行為更容易。