繼承:同類事物具有共同性,在同類事物中,每個事物又具有其特殊性。運用抽象的原則舍棄對象的特殊性,抽取其共同性,則得到一個適應于一批對象的類,這便是基類(父類),而把具有特殊性的類稱為派生類(子類),派生類的對象擁有其基類的全部或部分屬性與方法,稱作派生類對基類的繼承。
目前累計服務客戶上千多家,積累了豐富的產品開發及服務經驗。以網站設計水平和技術實力,樹立企業形象,為客戶提供網站制作、成都網站制作、網站策劃、網頁設計、網絡營銷、VI設計、網站改版、漏洞修補等服務。創新互聯建站始終以務實、誠信為根本,不斷創新和提高建站品質,通過對領先技術的掌握、對創意設計的研究、對客戶形象的視覺傳遞、對應用系統的結合,為客戶提供更好的一站式互聯網解決方案,攜手廣大客戶,共同發展進步。
代碼復用:在OO編程中,在繼承 多臺等機制下 利用已有的代碼完成新的程序
措施一:改寫類的實例方法
通過類繼承實現代碼重用不是精確的代碼重用技術,因此它并不是最理想的代碼重用機制。換句話說,如果不繼承整個類的所有方法和數據成員,我們無法重用該類里面的單個方法。繼承總是帶來一些多余的方法和數據成員,它們總是使得重用類里面某個方法的代碼復雜化。另外,派生類對父類的依賴關系也使得代碼進一步復雜化:對父類的改動可能影響子類;修改父類或者子類中的任意一個類時,我們很難記得哪一個方法被子類覆蓋、哪一個方法沒有被子類覆蓋;最后,子類中的覆蓋方法是否要調用父類中的對應方法有時并不顯而易見。
任何方法,只要它執行的是某個單一概念的任務,就其本身而言,它就應該是首選的可重用代碼。為了重用這種代碼,我們必須回歸到面向過程的編程模式,把類的實例方法移出成為全局性的過程。為了提高這種過程的可重用性,過程代碼應該象靜態工具方法一樣編寫:它只能使用自己的輸入參數,只能調用其他全局性的過程,不能使用任何非局部的變量。這種對外部依賴關系的限制簡化了過程的應用,使得過程能夠方便地用于任何地方。當然,由于這種組織方式總是使得代碼具有更清晰的結構,即使是不考慮重用性的代碼也同樣能夠從中獲益。
去掉泛型直接復用就行了。代碼貌似有問題
public Kmodel execute(){
ListKmodellist = gethandle();
return list;
}
方法返回的是一個list返回的類型 不是Kmodel或Qmodel
應該是這樣吧
public ListKmodel execute(){
ListKmodel list = gethandle();
return list;
}
想復用的話就 去掉泛型應該就能用了。不過取list的元素時需要強制轉換類型。
public List execute(){
List list = gethandle();
return list;
}
建議你看一下 thinking in pattern ,這里面有較詳細的說明。 說明對象的使用,以及對象持久化、代碼復用。 其實簡單理解重用就是說:當一個操作會在其他幾個操作中都會使用到的時候, 你就可以把這個操作提取出來,寫一個公用的方法,供其他方法使用就是了。
看看下面這個例子,就會明白了:JAVA中繼承可以實現代碼復用,
由于在父類中已經定義的方法,被子類繼承以后,就可以使用,實現了代碼的復用
class Father{
private int moneyDollar=300;
int moneyHK=200;
int add(int x,int y){
return x+y;
}
}
class Son extends Father{
int moneyRMB=800;
public void changMoneyHK(int x){
moneyHK=x;
}
public void changMoneyRMB(int x){
moneyRMB=x;
}
int subs(int x,int y){
return x-y;
}
}
class GrandSon extends Son{
int multi(int x,int y){
return x*y;
}
}
public class Example5_1{
public static void main(String args[]){
int a=5,b=3;
Son son=new Son();
GrandSon sunzi=new GrandSon();
son.changMoneyHK(666);
son.changMoneyRMB(5000);
System.out.println("兒子的港幣是繼承的屬性,當前的值是:"+son.moneyHK);
System.out.println("兒子的人民幣是新增的屬性,當前的值是:"+son.moneyRMB);
System.out.printf("減法是兒子新增的功能,%d-%d等于%d\n",a,b,son.subs(a,b));
System.out.printf("加法是兒子繼承的功能,%d+%d等于%d\n",a,b,son.add(a,b));
System.out.println("孫子的港幣和人民幣都是繼承的屬性,,當前的值是:");
System.out.println("港幣:"+sunzi.moneyHK+" 人民幣:"+sunzi.moneyRMB);
System.out.printf("乘法是孫子新增的功能,%d*%d等于%d\n",a,b,sunzi.multi(a,b));
System.out.printf("加法是孫子繼承的功能,%d+%d等于%d\n",a,b,sunzi.add(a,b));
System.out.printf("減法是孫子繼承的功能,%d-%d等于%d\n",a,b,sunzi.subs(a,b));
}
}
如果你用的是eclipse可以用快捷鍵來抽取方法的,就是選中重復的代碼,然后按alt+shift+m,就解決你的代碼重復問題。
網站名稱:java代碼復用,什么是一種解決代碼復用的編程方法
網頁URL:http://vcdvsql.cn/article18/hedggp.html
成都網站建設公司_創新互聯,為您提供用戶體驗、企業網站制作、網站導航、小程序開發、搜索引擎優化、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯