今天進度暫緩,知識點很多需要加強練習和思考的,總結如下:
1、extends父子類的繼承和implements介面的實現,是多型的前提;
多型就是說物件的多種形態–》乙個學生可以是學生,也是人類
2、多型性的體現:父類引用指向子類物件
格式:左父右子 【子類就是乙個父類】
【a】父子類之間的繼承
父類名稱 物件名 = new 子類名稱();
【b】介面實現
介面名稱 物件名 = new 實現類名稱();
以上兩者都是多型性的體現;
public class fu
public void methoda()
}public class zi extends fu
}public class demomulti
}
3、多型中的【成員變數的使用】
public class fu
public void shownum()
public void methodfu()
}public class zi extends fu
//子類覆蓋重寫shownum方法
public void shownum()
public void methodzi()
}public class demotest
}
//只有方法才可以進行覆蓋重寫,成員變數不能進行覆蓋重寫
//間接通過**成員方法訪問成員變數:
注意:【new的用誰,就優先用誰,沒有則向上查詢】
【編譯看左邊,執行看右邊】----》訪問成員方法,成員變數不可以使用此方法
成員變數:編譯看左邊,執行看左邊
成員方法:編譯看左邊,執行看右邊
4、多型的好處
【a】如果不用多型,只用子類
teacher one = new teacher();
one.work();//講課
assistant two = new assistant();
two.work();//輔導
【b】使用多型的寫法
employeeone = new teacher();
one.work();//講課
employeetwo = new assistant();
two.work();//輔導
無論右邊new的時候換成哪個子類物件,等號左邊呼叫方法都不會變化;
5、物件的向上轉型
物件的向上轉型,其實就是多型寫法;
格式:父類名稱 物件名 = new 子類名稱();//父類引用指向子類物件
建立乙個子類物件,把它當做父類來看待使用;
animal animal = new cat();
//將貓看待成動物進行使用
【a】向上轉型一定是安全的;從小範圍轉向大範圍;
【b】向上轉型一定是安全的,沒有問題的,但是物件一旦向上轉型為父類,那麼久無法呼叫子類原本特有的內容;
animal animal = new animal();
animal.eat();
-----------------------------------------
animal animal = new cat();
animal.eat();//正確寫法
animal.catchmouse();//錯誤寫法,catchmouse方法是子類特有的方法,
//現在那cat()已經向上轉型為乙個animal父類了,如果想要是使用catchmouse方法,
//就必須進行物件的向下轉型,還原成為本來的物件進行呼叫
cat cat = (cat)animal;//向下轉型
cat.catchmouse();//可以訪問子類的catchmouse方法,正確寫法
6、向下轉型:【還原】動作,子類本來是什麼,就必須還原成什麼,否則編譯**會報錯,例如將本來是貓的動物類,還原成為了乙個狗類,這是錯誤的,
子類名稱 物件名 = (子類名稱) 父類物件;–》類似資料型別的強制轉換
將父類物件還原成為本來的子類物件;
animal animal = new cat();//向上轉型
cat cat = (cat)animal;//向下轉型
//必須保證物件本來建立的時候,就是貓,才能向下轉型成為貓
cat cat = (dog)animal;//錯誤寫法,本來是貓,現在轉換成狗,還原錯誤
//classcastexception型別轉換異常
int num = (int)10.0//正確寫法
int num = (int)10.5//精度損失
乙個父類如何判斷子類是什麼?instanceof方法進行判斷子類物件
後續知識點明天更新,明天任務,要把相關寫作業的做完,把模糊的知識點進行梳理,一定要搞懂,共勉!以馬內利
python之路 day13 模組
1,什麼是模組 模組就是系統功能的集合體,在python中,乙個py檔案就是乙個模組,例如 module.py 其中module叫做模組名 2,使用模組 2.1 import匯入模組 首次帶入模組發生三件事 1,建立乙個模組的命名空間 2,執行模組對應檔案,將產生的名字存放於1中的命名空間 3,在當...
Python學習之路 day 13 迭代器
一.迭代器介紹 1.什麼是迭代器 1.1.迭代器指的是迭代取值的工具 1.2.迭代是一重複的過程,每一次重複都是基於上一次的結果而來 單純的重複不是迭代 i 0 while true print i 迭代 重複 每次重複都是基於上一次的結果而進行 l a b c i 0while i len l p...
Python學習之路 day 13 迭代器
一.迭代器介紹 1.什麼是迭代器 1.1.迭代器指的是迭代取值的工具 1.2.迭代是一重複的過程,每一次重複都是基於上一次的結果而來 單純的重複不是迭代 i 0 while true print i l a b c i 0while i len l print l i i 1 2.為何要用迭代器 迭...