[多型]
定義:某一類事物的多種存在形式。
例:動物中貓,狗。
貓這個物件對應的型別是貓型別。
貓 x = new 貓();
同時貓也是動物中的一種,也可以把貓稱為動物。
動物 y = new 貓();
動物是貓和狗具體事物中抽取出來的父型別。
父型別引用指向了子類物件。
/*
多型:可以理解為事物存在的多種體現形態。
人:男人,女人。
動物:貓,狗。
貓 x = new 貓();
動物 x = new 貓();
1.多型的體現
父類的引用指向了自己的子類物件。
父類的引用也可以接收自己的子類物件。
2.多型的前提
3.多型的好處
多型的出現大大的提高了程式的擴充套件性。
4.多型的弊端
提高了擴充套件性,但是只能使用父類的引用訪問父類的方法。
5.多型的應用
*//*
動物:貓,狗。
*/abstract class animal
class cat extends animal
public void catchmouse() }
class dog extends animal
public void kanjia() }
class pig extends animal
public void gongdi() }
class duotaidemo
public static void function(animal a)
}
在多型中成員函式的特點:
在編譯時期:殘月引用型變數所屬的類中是否有呼叫的方法。如果有,編譯通過;如果沒有編譯失敗。
在執行時期:參閱物件所屬的類中是否有呼叫的方法。
簡單總結就是:成員函式在多型呼叫時,編譯看左邊,執行看右邊。
在多型中,成員變數的特點:
無論編譯和執行,都參考左邊(引用型變數所屬的類)。
在多型中,靜態成員函式的特點:
無論編譯和執行,都參考左邊。
[多型的主機板示例]
/*
需求:電腦執行例項。
電腦執行基於主機板。
*/class mainboard
public void usenetcard(netcard c) }
class netcard
public void close() }
class duotaidemo
}
介面的引用降低了耦合性,提高了擴充套件性。
/*
需求:電腦執行例項。
電腦執行基於主機板。
*/inte***ce pci
class mainboard
public void usepci(pci p) //pci p = new netcard;//介面型引用指向自己的引用物件。 }
}class netcard implements pci
public void close() }
class soundcard implements pci
public void close() }
class duotaidemo
}
[多型的擴充套件示例]
dao = data access object
/*
需求:資料庫的操作。
資料是 使用者資訊。
1.連線資料庫。jdbc
2.運算元據庫。
c create r read u update d delete
3.關閉資料庫連線。
*/class userinfodao
class userinfobyjdbc
public void delete(user user) }
class userinfobyhibernate implements useinfodao
public void delete(user user) }
class dboperate
}
[object類-equals()]
object:所有物件的超類
/*
object:是所有物件的直接或者間接父親,傳說中的上帝。
該類中定義的肯定是所有物件都具備的功能。
*/class demo //extends object
class person
class objectdemo
}
下面我們定義demo自己的比較方式,我們接下來根據上面的**改編,定義demo自己的功能:
/*
object:是所有物件的直接或者間接父親,傳說中的上帝。
該類中定義的肯定是所有物件都具備的功能。
object類中已經提供了對物件是否想通過的比較方法。
如果自定義類中也有相同的功能,沒有必要重新定義。
只要沿襲父類中的功能,建立自己特有比較內容即可。這就是覆蓋。
*/class demo //extends object
public boolean equals(object obj)//object obj = new demo();
/*public boolean compare(demo d)
*/}class person
class objectdemo
}
object類-tostring() 。。。。。。 DAY8學習筆記
檔案操作的基本概念 開啟檔案的模式有三種純淨模式 r 預設的 w a。控制操作檔案內容格式的兩種模式 t 預設的 b。大前提 tb模式均不能單獨使用,必須與純淨模式結合使用。t文字模式 1.讀寫檔案都是以字串為單位的。2.只能針對文字檔案。3.必須指定encoding引數。b二進位制模式 1.讀寫檔...
python學習筆記 day8
if 條件 語句if 條件 語句else 語句if 條件 語句elif 條件 語句else 語句python中使用elif代替else if,所以if語句的關鍵字是if elif else 需要注意的是 語句的縮排 python中沒有switch case語句 如果語句只有一條,可以寫在 if 後 ...
HTML學習筆記Day8
一 設定元素背景透明屬性 1.元素背景透明,內容正常顯示 注 opacity value 元素背景透明內容也透明 2.rgba分別指red green blue 透明度 二 flash和marquee 滾動字幕 1.插入flash 1 語法 2 將flash背景設定為透明 給標記新增屬性 wmode...