- /*
- 多態介紹和總結,主板示例,Object 類
- */
- 4.9 多態
- 可以理解爲事物存在的多種體現形態。
- 1.多態的體現:父類引用指向了自己的子類對象。
- 父類的引用可以接收自己的本類對象。
- 2.多態的前提:
- 1.必須是類與類之間有關係,要麼繼承,要麼實現。
- 2.通常還有一個前提:存在覆蓋。
- 3.多態的好處
- 多態的出現大大的提高了程序的擴展性。
- 多態的bei端:提高了擴展性,但是隻能使用父類的引用訪問父類中的成員。
- 強制將父類的引用。轉成子類類型。向下轉型。Cat c = (Cat)a;
- 不可以將父類的對象轉成子類類型。
- 多態自始至終都是子類對象在做着變化。轉換前先 a instanceof Cat 判斷一下。
- a instanceof Cat :此處a 的實例是Cat嗎?
- 4.多態的應用
- 5.多態使用的注意事項(特點)
- 1.在多態中成員函數的特點:
- 在編譯時期,參與引用型變量所屬的類中是否有調用方法,有就通過,沒有就編譯失敗。
- 在運行時期,參閱對象所屬的類中是否有調用的方法。
- 簡單總結:成員函數在多態調用時,。。。編譯看左邊,運行看右邊。
- 靜態函數時,編譯運行都看左邊。
- 在多態中成員變量無論編譯和運行,都參閱左邊。
- //主板示例
- interface PCI
- {
- void close();
- void open();
- }
- class MainBoard
- {
- public void run(){
- System.out.println("mainboard run");
- }
- public void usePCI(PCI p){
- if (p!=null)
- {
- p.open();
- p.close();
- }
- }
- }
- class NetCard implements PCI
- {
- public void open(){
- System.out.println("netcard run");
- }
- public void close(){
- System.out.println("netcard close");
- }
- }
- class SoundCard implements PCI
- {
- public void open(){
- System.out.println("soundcard run");
- }
- public void close(){
- System.out.println("soundcard close");
- }
- }
- class DuoTaiDemo5
- {
- public static void main(String[] args)
- {
- MainBoard mb = new MainBoard();
- mb.run();
- mb.usePCI(null);
- mb.usePCI(new NetCard());
- mb.usePCI(new SoundCard());
- }
- }
- 需求:數據庫的操作
- 1.連接數據庫。JDBC Hibernate
- 2.操作數據庫。
- c create r read u update d delete
- 3.關閉數據庫連接。
- interface UserInfoDao
- {
- public void add(User user);
- public void delete(User user);
- }
- class UseInfoByJDBC implements UserInfoDao
- {
- public void add(User user)
- {
- 1.JDBC連接數據庫
- 2.使用SQL添加語句添加數據
- 3.關閉連接。
- }
- public void delete(User user)
- {
- 1.JDBC連接數據庫
- 2.使用SQL刪除語句刪除數據
- 3.關閉連接。
- }
- }
- class UserInfoHibernate implements UserInfoDao
- {
- public void add(User user)
- {
- 1.Hibernate連接數據庫
- 2.使用SQL添加語句添加數據
- 3.關閉連接。
- }
- public void delete(User user)
- {
- 1.Hibernate連接數據庫
- 2.使用SQL刪除語句刪除數據
- 3.關閉連接。
- }
- }
- class DBOperate
- {
- public static void main(String[] args)
- {
- //UserInfoByJDBC ui = new UserInfoByJDBC();
- //ui.add(user);
- //ui.delete(user);
- UserInfoDao ui = ;
- ui.add(user);
- ui.delete(user);
- }
- }
- Object 類 是java所有對象的上帝。每個類都使用object作爲超類。
- 該類中定義的是所有對象都具備的功能。
- equals比較的是地址。
- 重寫 object的equqls,要注意判斷和轉換動作
- ` public boolean equals(Object obj)
- {
- if (!(obj instanceof Demo))
- {
- return false;
- }
- Demo d = (Demo)obj;
- return this.num == d.num;
- }
- object 類的 toString()方法。
- 默認顯示 類名和哈希值。
- 一般要覆蓋toString()方法。顯示自己的內容
- public String toString(){
- return "demo:"+num;
- }
多態介紹和總結,主板示例,Object 類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.