JAVA涓殑鎺ュ彛鍜屾娊璞$被(杞

JAVA涓殑鎺ュ彛鍜屾娊璞$被(杞?

婧愯嚜锛歨ttp://www.cnblogs.com/xiaoao808/archive/2008/03/11/1100886.html

鍦ㄩ潰鍚戝璞$殑姒傚康涓紝鎴戜滑鐭ラ亾鎵€鏈夌殑瀵硅薄閮芥槸閫氳繃绫绘潵鎻忕粯鐨勶紝浣嗘槸骞朵笉鏄墍鏈夌殑绫婚兘鏄敤鏉ユ弿缁樺璞$殑锛屽鏋滀竴涓被涓病鏈夊寘鍚冻澶熺殑淇℃伅鏉ユ弿缁樹竴涓叿浣撶殑瀵硅薄锛岃繖鏍风殑绫诲氨鏄娊璞$被銆?/span>
銆€銆€鎶借薄绫诲線寰€鐢ㄦ潵琛ㄥ緛鎴戜滑鍦ㄥ闂棰嗗煙杩涜鍒嗘瀽銆?璁捐涓緱鍑虹殑鎶借薄姒傚康锛屾槸瀵逛竴绯诲垪鐪嬩笂鍘讳笉鍚岋紝浣嗘槸鏈川涓婄浉鍚岀殑鍏蜂綋姒傚康鐨勬娊璞★紝鎴戜滑涓嶈兘鎶婂畠浠疄渚嬪寲锛堟嬁涓嶅嚭涓€涓叿浣撶殑涓滆タ锛夋墍浠ョО涔嬩负鎶借薄銆?br style="clear: both;">銆€銆€姣斿锛氭垜浠鎻忚堪鈥滄按鏋溾€濓紝瀹冨氨鏄竴涓娊璞★紝瀹冩湁璐ㄩ噺銆佷綋绉瓑涓€浜涘叡鎬э紙姘存灉鏈夎川閲忥級锛屼絾鍙堢己涔忕壒鎬э紙鑻规灉銆佹瀛愰兘鏄按鏋滐紝瀹冧滑鏈夎嚜宸辩殑鐗规€э級锛屾垜浠嬁涓嶅嚭鍞竴涓€绉嶈兘浠h〃姘存灉鐨勪笢瑗匡紙鍥犱负鑻规灉銆佹瀛愰兘涓嶈兘浠h〃姘存灉锛夛紝鍙敤鎶借薄绫绘潵鎻忚堪瀹冿紝鎵€浠ユ娊璞$被鏄笉鑳藉瀹炰緥鍖栫殑銆傚綋鎴戜滑鐢ㄦ煇涓被鏉ュ叿浣撴弿杩扳€滆嫻鏋溾€濇椂锛岃繖涓被灏卞彲浠ョ户鎵挎弿杩扳€滄按鏋溾€濈殑鎶借薄绫伙紝鎴戜滑閮界煡閬撯€滆嫻鏋溾€濇槸涓€绉嶁€滄按鏋溾€濄€?/span>

銆€銆€鍦ㄩ潰鍚戝璞¢鍩燂紝鎶借薄绫讳富瑕佺敤鏉ヨ繘琛岀被鍨嬮殣钘忋€傛垜浠彲浠ユ瀯閫犲嚭涓€涓浐瀹氱殑涓€缁勮涓虹殑鎶借薄鎻忚堪锛屼絾鏄繖缁勮涓哄嵈鑳藉鏈変换鎰忎釜鍙兘鐨勫叿浣撳疄鐜版柟寮忋€傝繖涓娊璞℃弿杩板氨鏄娊璞$被锛岃€岃繖涓€缁勪换鎰忎釜鍙兘鐨勫叿浣撳疄鐜板垯琛ㄧ幇涓鸿繖涓娊璞$被鐨勬墍鏈夋淳鐢熺被銆?/p>

鎺ュ彛鍜屾娊璞$被涓殑鎵€鏈夋娊璞℃柟娉曚笉鑳芥湁鍏蜂綋瀹炵幇锛岃€屽簲鍦ㄥ畠浠殑瀛愮被涓疄鐜版墍鏈夌殑鎶借薄鏂规硶锛堣鏈夊嚱鏁颁綋锛屽摢鎬晎 }閲屾槸绌虹殑锛夛紝锝婏絹锝栵絹鐨勮璁¤€呭彲鑳戒负鎶借薄鏂规硶鐨勭伒娲绘€ц€冭檻锛屾瘡涓瓙绫诲彲鏍规嵁鑷繁鐨勯渶瑕佹潵瀹炵幇鎶借薄鏂规硶銆?/p>

鎶借薄绫伙紙abstract class锛夌殑瀹氫箟鏂瑰紡濡備笅锛毬?br style="clear: both;">public abstract class AbstractClass聽聽聽聽聽聽聽聽聽聽聽聽 //閲岄潰鑷冲皯鏈変竴涓娊璞℃柟娉?br style="clear: both;">{
聽銆€銆€public int t;聽 //鏅€氭暟鎹垚鍛?br style="clear: both;">銆€銆€聽public abstract void method1();聽聽 //鎶借薄鏂规硶锛屾娊璞$被鐨勫瓙绫诲湪绫讳腑蹇呴』瀹炵幇鎶借薄绫讳腑鐨勬娊璞℃柟娉?br style="clear: both;">聽銆€銆€public abstract void method2();聽
聽銆€銆€public void method3();聽聽 //闈炴娊璞℃柟娉?br style="clear: both;">聽銆€銆€public int method4();
聽銆€銆€publi int method4 (){
聽聽聽聽聽 銆€銆€鈥︹€β?/鎶借薄绫讳腑鍙互璧嬩簣闈炴娊璞℃柟娉曟柟娉曠殑榛樿琛屼负锛屽嵆鏂规硶鐨勫叿浣撳疄鐜?br style="clear: both;">聽銆€銆€}

聽聽聽聽聽聽 public void method3(){
聽聽聽聽聽 銆€銆€鈥︹€β?/鎶借薄绫讳腑鍙互璧嬩簣闈炴娊璞℃柟娉曟柟娉曠殑榛樿琛屼负锛屽嵆鏂规硶鐨勫叿浣撳疄鐜?br style="clear: both;">聽銆€銆€}聽

}

鎺ュ彛锛坕nterface锛夌殑瀹氫箟鏂瑰紡濡備笅锛毬?br style="clear: both;">public interface Interface
{聽
聽銆€銆€static final int i;聽 //鎺ュ彛涓笉鑳芥湁鏅€氭暟鎹垚鍛橈紝鍙兘澶熸湁闈欐€佺殑涓嶈兘琚慨鏀圭殑鏁版嵁鎴愬憳,static琛ㄧず鍏ㄥ眬锛宖inal琛ㄧず涓嶅彲淇敼锛屽彲浠ヤ笉鐢╯tatic final聽淇グ锛屼細闅愬紡鐨勫0鏄庝负static鍜宖inal
聽銆€銆€

銆€銆€ public void method1();聽 //鎺ュ彛涓殑鏂规硶涓€瀹氭槸鎶借薄鏂规硶锛屾墍浠ヤ笉鐢╝bstract淇グ
聽銆€銆€

聽銆€銆€public void method2();聽聽//鎺ュ彛涓笉鑳借祴浜堟柟娉曠殑榛樿琛屼负锛屽嵆涓嶈兘鏈夋柟娉曠殑鍏蜂綋瀹炵幇
}

銆€銆€

銆€銆€绠€瑷€涔嬫娊璞$被鏄竴绉嶅姛鑳戒笉鍏ㄧ殑绫伙紝鎺ュ彛鍙槸涓€涓娊璞℃柟娉曞0鏄庡拰闈欐€佷笉鑳借淇敼鐨勬暟鎹殑闆嗗悎锛屼袱鑰呴兘涓嶈兘琚疄渚嬪寲銆?br style="clear: both;">銆€銆€浠庢煇绉嶆剰涔変笂璇达紝鎺ュ彛鏄竴绉嶇壒娈婂舰寮忕殑鎶借薄绫伙紝鍦綂锝侊綎锝佽瑷€涓娊璞$被琛ㄧず鐨勬槸涓€绉嶇户鎵垮叧绯伙紝涓€涓被鍙兘缁ф壙缁ф壙涓€涓娊璞$被锛岃€屼竴涓被鍗村彲浠ュ疄鐜板涓帴鍙c€傚湪璁稿鎯呭喌涓嬶紝鎺ュ彛纭疄鍙互浠f浛鎶借薄绫伙紝濡傛灉浣犱笉闇€瑕佸埢鎰忚〃杈惧睘鎬т笂鐨勭户鎵跨殑璇濄€?/span>

銆€銆€

杩涗竴姝ョ悊瑙o紝鍏充簬锝婏絹锝栵絹寮曞叆鎶借薄绫汇€佹帴鍙g殑鐩殑锛屽悜楂樻墜璇锋暀寰楀埌鐨勭瓟澶嶅涓嬶細

1銆佷粠绫荤殑灞傛缁撴瀯涓婄湅锛屾娊璞$被鏄湪灞傛鐨勯《绔紝浣嗗湪瀹為檯鐨勮璁″綋涓紝涓€鑸潵璇存娊璞$被搴斿綋鏄悗闈㈡墠浼氬嚭鐜般€備负浠€涔堬紵瀹為檯涓婃娊璞$被鐨勮幏鍙栨湁鐐瑰儚鏁板涓殑鎻愬彇鍏洜寮忥細ax+bx锛寈灏辨槸鎶借薄绫伙紝濡傛灉浣犳病鏈夊墠闈㈢殑寮忓瓙锛屼綘鎬庝箞鐭ラ亾x鏄笉鏄叕鍥犲紡鍛紵鍦ㄨ繖鐐逛笂锛屼篃绗﹀悎浜轰滑璁よ瘑涓栫晫鐨勮繃绋嬶紝鍏堝叿浣撳悗鎶借薄銆傚洜姝ゅ湪璁捐杩囩▼涓鏋滀綘寰楀埌澶ч噺鐨勫叿浣撴蹇靛苟浠庡綋涓壘鍒板叾鍏辨€ф椂锛岃繖涓叡鎬х殑闆嗗悎灏辨槸鎶借薄绫诲簲褰撴槸娌¢敊鐨勩€偮?br style="clear: both;">2銆乮nterface浠庤〃闈笂鐪嬶紝鍜屾娊璞$被寰堢浉浼硷紝浣嗙敤娉曞畬鍏ㄤ笉鍚屻€傚畠鐨勫熀鏈姛鑳藉氨鏄妸涓€浜涙涓嶇浉鍏崇殑绫伙紙姒傚康锛夐泦鍚堝湪涓€璧峰舰鎴愪竴涓柊鐨勩€佸彲闆嗕腑鎿嶄綔鐨勨€滄柊绫烩€濄€傛垜缁欏鐢熺殑涓€涓吀鍨嬩緥瀛愬氨鏄€滃徃鏈衡€濄€傝皝鍙互褰撳徃鏈猴紵璋侀兘鍙互锛屽彧瑕侀鍙栦簡椹剧収銆傛墍浠ユ垜涓嶇浣犳槸瀛︾敓锛岀櫧棰嗐€佽摑棰嗚繕鏄€佹澘锛屽彧瑕佹湁椹剧収灏辨槸鍙告満銆偮?br style="clear: both;">interface DriverLicence {聽
Licence getLicence();聽
}

class StudentDriver extends Student implements DriverLicence {聽
}聽
class WhtieCollarEmployeeDriver extends WhtieCollarEmployee implements DriverLicence {聽
}聽
class BlueCollarEmployeeDriver extends BlueCollarEmployee implements DriverLicence {聽
}聽
class BossDriver extends Boss implements Driver {聽
}

褰撴垜瀹氫箟浜嗏€滄苯杞︹€濈被鍚庯紝鎴戝氨鍙互鎸囧畾鈥滃徃鏈衡€濅簡銆?/p>

class Car {聽
setDriver(DriverLicence driver);聽
}聽
杩欐椂鍊欙紝Car鐨勫璞″苟涓嶅叧蹇冭繖涓徃鏈哄埌搴曟槸骞蹭粈涔堢殑锛屼粬浠殑鍞竴鍏卞悓鐐规槸棰嗗彇浜嗛┚鐓э紙閮藉疄鐜颁簡DriverLicence鎺ュ彛锛夈€傝繖涓紝搴斿綋鏄帴鍙f渶寮哄ぇ鐨勫湴鏂逛篃鏄娊璞$被鏃犳硶姣旀嫙鐨勩€偮?br style="clear: both;">聽聽聽聽聽 鎬荤粨锛氭娊璞$被鏄彁鍙栧叿浣撶被鐨勫叕鍥犲紡锛岃€屾帴鍙f槸涓轰簡灏嗕竴浜涗笉鐩稿叧鐨勭被鈥滄潅鍑戔€濇垚涓€涓叡鍚岀殑缇や綋銆傞€氬父鎴戜滑骞虫椂鍏绘垚鑹ソ鐨勪範鎯氨鏄鐢ㄦ帴鍙o紝姣曠珶锝婏絹锝栵絹鏄崟缁ф壙锛屼笉鍍廋++锛屼絾鏄湪闇€瑕佷娇鐢ㄦ娊璞$被鐨勬椂鍊欎竴瀹氳繕鏄鐢ㄧ殑锛堟湁鐐圭被浼糶oto鐨勭敤娉曪級锛屽懙鍛点€?/p>

JAVA涓殑鎺ュ彛鍜屾娊璞$被