多型的規則(前提):
1類與類之間要建立關係 建立繼承的關係
2.必須要有方法重寫
3.父類的指標(引用) 指向 子類的物件(空間)
需求:建立 動物類 貓類 狗類
都有乙個吃的方法 動物類 吃
貓 貓吃魚
狗 狗吃骨頭
public
class
demo01
}class
animal
}class
catextends
animal
}class
dogextends
animal
}
多型時 成員變數如何呼叫的?
多型時 當父類引用 呼叫成員變數
編譯需要看父類中有沒有這個成員變數 沒有編譯不會通過
執行 訪問的就是父類中的這個成員變數
編譯 和 執行 父類訪問成員變數看父類(看父類)
思考:son s = new son();
s.num 列印的是什麼 在記憶體中如何表現
多型時 如何訪問成員方法?
多型呼叫 成員方法時
編譯時 看父類中有沒有這個方法 沒有 就報錯
執行時 執行 執行子類的這個方法
多型呼叫成員方法時
編譯看父類
執行看子類
public
class
demo02
}class
father
}class
sonextends
father
}
多型
好處:1.增強**可以維護性(建立在繼承的基礎上)
2.增強方法的可擴充套件性(核心)
弊端:不能呼叫直接呼叫子類特殊方法
public class demo03 class person}
class lie extends person
public void hit()
}舉乙個 例子
需求:**類 打 揮舞**
刀 打 揮舞刀 —砍人
練功 —-練刀
劍類 打 揮劍—–刺人
練功 耍劍
public
class
demo04
public
static
void fun(weapon w) else
if (w instanceof sword)
}}class
weapon
}class
blade
extends
weapon
public
void pratice()
}class
sword
extends
weapon
public
void pratice()
}
java之物件導向
類是用於描述同一型別的物件的乙個抽象。類中定義了這一類物件所具有的靜態和動態屬性 靜態屬性 成員變數 動態屬性 方法 1 類可以看成是一類物件的模板,物件可以看成該類的乙個具體例項 2 首先必須定義類才能有物件 說到類,就不得不說構造其構造方法了 在new乙個物件是,呼叫的就是類中的構造方法 列如p...
Java入門之物件導向三大特徵
一 封裝 每個物件包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來進行自己的操作。將方法 屬性 字段包裝在類中,通過例項化類來生成物件。封裝的好處 1 好的封裝能減少耦合 2 類內部的實現可以自由修改 3 類具有清晰的對外介面 封裝就像建房子,類就是房子,屬性是門窗,欄...
java之物件導向2
作用 對物件的屬性 成員變數 進行初始化的 寫法 1.構造方法名與類名完全相同相同 大小寫必須一樣 2.沒有返回值型別 連void都不寫 3.沒有返回值 沒有 return public class demo01 class person 需求 寫乙個有引數的構造方法 public person s...