Java學習之路 day13

2021-08-29 16:33:17 字數 2669 閱讀 6828

今天進度暫緩,知識點很多需要加強練習和思考的,總結如下:

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.為何要用迭代器 迭...