Java自學筆記(十)

2021-08-17 02:27:36 字數 1722 閱讀 7315

要用到多型,一定是已經有子父類關係或者類實現介面等前提

格式:父類型別 變數名稱 = new 子型別行();

變數名稱.方法();

具體體現(父子類,抽象類,介面)

class fu {}class zi extends fu }//類的多型使用

fu f = new zi();//這其實就是向上轉型

abstract class fu 

class zi extends fu

}//類的多型使用

fu fu= new zi(); //父類 變數名稱 = new 子類();

inte***ce fu 

class zi implements fu

}//介面的多型使用

fu fu = new zi(); //介面 變數名稱 = new 介面實現類();

另外,父類被不同子類的同名方法重寫,執行的方法看子類重寫的步驟,下面是理解方式:

person p1 = new xiaoxuesheng();

person p2 = new daxuesheng();

p1.work(); //p1會呼叫xiaoxuesheng類中重寫的work方法,可能是背古詩,看子類重寫方法是什麼

p2.work(); //p2會呼叫daxuesheng類中重寫的work方法,可能是敲**,看子類重寫方法是什麼

多型框架下的兩條規則:

多型的成員變數編譯和執行依據父類(new等式的左邊)

多型的成員方法編譯看左邊(編譯中父類必須重寫方法),執行看右邊(執行過程中如果子父類方法同名,執行子類)

class fu 

class zi extends fu

class demo

}

class fu 

}class zi extends fu

}class demo

}

instanceof關鍵字,用於判斷物件是否屬於某種型別,會基於返回值true or false

使用格式:boolean a = 物件名稱 instanceof 資料型別;

profession a = new doctor();

boolean i = a instanceof worker; //false

boolean i = a instanceof doctor; //true

向下轉型

父類型別  變數名 = new 子類型別();

如:person p = new doctor();

子類型別 變數名 = (子類型別) 父類型別的變數;

如:doctor nur = (doctor) p;

考慮到靜態呼叫,總體來說:編譯都看左邊的父類

執行若是靜態方法,執行父類中的靜態方法(靜態方法是類

不是物件,不屬於多型範疇)

執行若是非靜態方法,執行子類重寫方法,

對於成員變數,編譯執行全看父類!

python自學筆記(十)

1.生成單調的list 1,2,3,4,5,6 可用list range 1,11 2.生成有一定規律的list 1x1,2x2,3x3,10x10 l for x in range 1,11 x x for x in range 1,11 把要生成的表示式放在前面 for迴圈 判斷條件 根據情況選...

Java自學筆記(十二)

final 可以用來修飾類,類的成員,以及區域性變數 注意 final修飾的類不能被繼承,但可以繼承其他類,俗稱 太監類 final修飾的方法不可以被重寫 覆蓋 如果父類中沒有被final修飾方法,子類重寫之後可以補充final final修飾的變數其實是常量,不能再次賦值。可以再構造方法中給fin...

JAVA自學筆記一

二 表示式 基本語句 1.算數運算子 加減乘除 取餘 運算子,均為二目運算子 結合方向自左向右 算術運算的精度由高到低排列 byte short char int long float double 當算術表示式運算過程中如果表示式中有不等的精度,結果均按照高精度排列 2.自增自減運算子 自增自減運...