锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽class Shap {
聽void draw(){
聽聽System.out.println("Shap.draw()");
聽}
聽void erase(){
聽聽System.out.println("Shap.erase()");
聽}
聽
}
class Circle extends Shap{
聽void draw(){
聽聽System.out.println("Circle.draw()");
聽}
聽void erase(){
聽聽System.out.println("Circle.erase()");
聽}
}
聽
class Square extends Shap{
聽void draw(){
聽聽System.out.println("Square.draw()");
聽}
聽void erase(){
聽聽System.out.println("Square.erase()");
聽}
}
public class Picture{
聽void add(Shap s){
聽聽s.draw();
聽}
聽public static void main(String[] args) {
聽聽Picture p=new Picture();
聽聽Shap[] e={
聽聽聽聽new Circle(),
聽聽聽聽new Square()
聽聽};
聽聽for(int i=0;i<e.length;i++)
聽聽p.add(e[i]);
聽}
聽
}
娉ㄦ剰鐪嬩笂闈㈠姞綰㈣壊鐨勮鍙ワ紝鍙妚oid add(Shap s){s.draw();}榪欒〃紺轟竴涓狿icture綾葷殑涓涓柟娉曡浣跨敤Shap綾諱綔涓哄艦寮忓弬鏁板茍璋冪敤璇ュ弬鏁扮殑draw()鏂規(guī)硶銆傛垜浠湪鎺ヤ笅鏉ョ殑璇彞涓湅鍒幫紝涓嶇浣犵殑Shap綾葷殑瀛愮被鏄疌ircle榪樻槸Square錛屽湪浼犻掔粰鏂規(guī)硶add()鍚庯紝add()鑳借嚜鍔ㄥ垽鏂槸璋冪敤Circle鐨刣raw錛堬級鏂規(guī)硶榪樻槸Square鐨刣raw()鏂規(guī)硶銆侸AVA榪欑鈥滃悗鏈熺粦瀹氣濈殑鏈灝卞彨鍋氬鎬併傚彲浠ョ湅鍑猴紝浣犱笉蹇呬笓闂ㄤ負Circle綾誨啓涓涓猘dd()鏂規(guī)硶錛屽啀涓篠quare鍐欎竴涓猘dd錛堬級鏂規(guī)硶錛屽彧闇瑕佷負瀹冧滑鐨勫熀綾誨啓涓涓柟娉曪紝鍓╀笅鐨勭紪璇戝櫒灝辮兘涓轟綘鑷姩閫夋嫨浣犳兂瑕佽皟鐢ㄧ殑姝g‘鐨勬柟娉曘傚鏋滃鎬佷粎浠呮槸涓縐嶁滃悜涓婅漿鍨嬧濈殑褰㈠紡鐨勮瘽錛屾垜浠緱鍒扮殑浠呬粎鏄妭鐪佷簡涓鐐逛唬鐮佺殑璇濓紝涔熻鎴戜滑涓嶅繀瑕佺粰浜堝お澶氱殑鍏蟲敞錛岄偅澶氭佸埌搴曟湁浠涔堝叾瀹冨ソ澶勫憿錛熷湪涓婇潰鐨勪緥瀛愪腑鏂板姞涓涓狶ine綾伙紝瀹冧篃緇ф壙浜哠hap綾伙紝濡備笅鎵紺猴細
聽class Shap {
聽void draw(){
聽聽System.out.println("Shap.draw()");
聽}
聽void erase(){
聽聽System.out.println("Shap.erase()");
聽}
聽
}
class Circle extends Shap{
聽void draw(){
聽聽System.out.println("Circle.draw()");
聽}
聽void erase(){
聽聽System.out.println("Circle.erase()");
聽}
}
聽
class Square extends Shap{
聽void draw(){
聽聽System.out.println("Square.draw()");
聽}
聽void erase(){
聽聽System.out.println("Square.erase()");
聽}
}
class聽Line extends Shap{
聽void draw(){
聽聽System.out.println("Line.draw()");
聽}
聽void erase(){
聽聽System.out.println("Line.erase()");
聽}
}
public class Picture{
聽void add(Shap s){
聽聽s.draw();
聽}
聽public static void main(String[] args) {
聽聽Picture p=new Picture();
聽聽Shap[] e={
聽聽聽聽new Circle(),
聽聽聽聽new Square(),
聽聽聽 new Line()
聽聽};
聽聽for(int i=0;i<e.length;i++)
聽聽p.add(e[i]);
聽}
聽
}
鍙互鐪嬪嚭add()鏂規(guī)硶鏍規(guī)湰涓嶅繀瑕佺煡閬撴湁鏂扮被鐨勫鍔犺岀戶緇甯稿伐浣溿傚拫鐪嬶紝榪欏彧涓嶈繃榪樻槸鑺傜渷浜嗗嚑琛屼唬鐮佺殑闂錛屼綘鍙互涓烘瘡涓瓙綾婚兘鍐欎竴涓猘dd()鏂規(guī)硶錛屽悓鏍瘋兘瑙e喅闂銆傛湁鏂扮被鐨勫姞鍏ユ椂鍐嶄負榪欎釜鏂扮被鍐檃dd()鏂規(guī)硶銆傝繖涓嶄粎浠呮槸鑺傜渷浜嗗嚑琛屼唬鐮侊紝澶氭暡鍑犺浠g爜騫朵笉浼氬浣曟彁楂樼紪鐮佺殑鏁堢巼銆傝繖鏄竴涓濇兂錛屼綘鏍規(guī)湰涓嶇敤鍏沖績鍩虹被浠婂ぉ澶氫簡涓涓瓙綾伙紝鏄庡ぉ鍙堝浜嗕竴涓瓙綾伙紝涓嶇敤鎷呭績鐨勪綘鐨勪唬鐮佷腑錛屽浜庢柊鍔犲叆鐨勫瓙綾昏兘鍚︽甯哥殑榪愯錛屽洜涓轟綘鐩存帴涓庡熀綾葷殑鎺ュ彛榪涜閫氫俊錛岄伩鍏嶄簡澶嶆潅鎬с傛崲鍙ヨ瘽璇達紝浣犵殑浠g爜鍏鋒湁寰堝ソ鐨勫彲鎵╁睍鎬э紝鍩虹被鍙互闅忔椂鏍規(guī)嵁闇瑕佽繘琛屾墿灞曡屼笉鐢ㄦ媴蹇冧唬鐮佺殑榪愯闂銆?/p>