Java第十天學習筆記 物件導向(介面應用 多型)

2021-09-02 07:36:27 字數 2076 閱讀 1164

暴露的規則   使用規則   實現規則

這些裝置和電腦的耦合性降低了

inte***ce usb //暴露的 規則

class bookpc

//使用規則

public static void useusb(usb u)//介面型別的引用,用於接收(指向)介面的子類物件 }

//一年以後----------

//實現規則

//這些裝置和電腦的耦合性降低了

class upan implements usb

public void close() }

class usbmouse implements usb

public void close()

}

定義:某一類事物的多種存在形態。

例:動物中貓,狗。

貓這個物件對應的型別是貓型別:貓 x = new 貓();

同時貓也是動物中的一種,也可以把貓稱為動物:動物 y = new 貓();

動物是貓和狗具體事物中抽取出來的父型別。

父型別引用指向了子類物件。

多型性簡單說就是乙個物件對應著不同型別。

乙個多型對應著不同型別   

多型在**中的體現

多型好處: 提高了**的擴充套件性,前期定義的**可以使用後期的內容

弊端:前期定義的內容不能使用(呼叫)後期子類的特有內容

前提:1,   必須有關係,繼承,實現

2,有覆蓋

/*多型

好處 提高了**的擴充套件性,前期定義的**可以使用後期的內容

弊端:前期定義的內容不能使用(呼叫)後期子類的特有內容

前提:1,必須有關係,繼承,實現

2,有覆蓋

*/abstract class animal

class dog extend animal

void lookhome() }

class cat extend animal

}class duotaidemo

public static void method(animal a)

}

注意:

instanceof :用於判斷物件的具體型別,只能用於引用資料型別判斷,通常在向下轉型前用於健壯性的判斷。

1,成員變數

編譯時:參考引用型變數所屬的類中的是否有呼叫的成員變數,有,編譯通過,沒有,編譯失敗

執行時,參考引用型變數所屬的類中的是否有呼叫的成員變數,並執行該所屬類中的成員變數

2,成員函式(非靜態)

編譯時:參考引用型變數所屬的類中是否有呼叫的函式。有,編譯通過,沒有,編譯失敗

執行時:參考的是物件所屬的類中是否有呼叫的函式

簡單的說:編譯看左邊,執行看右邊

3,靜態函式

編譯時:參考引用型變數所屬的類中的是否有呼叫的靜態方法

執行時:參考引用型變數所屬的類中的是否有呼叫的靜態方法

簡單說,編譯和執行都看左邊

其實對於靜態方法,是不需要物件的,直接用類名呼叫

/*多型時,成員的特點

1,成員變數

編譯時:參考引用型變數所屬的類中的是否有呼叫的成員變數,有,編譯通過,沒有,編譯失敗

執行時,參考引用型變數所屬的類中的是否有呼叫的成員變數,並執行該所屬類中的成員變數

2,成員函式(非靜態)

編譯時:參考引用型變數所屬的類中是否有呼叫的函式。有,編譯通過,沒有,編譯失敗

執行時:參考的是物件所屬的類中是否有呼叫的函式

簡單的說:編譯看左邊,執行看右邊

3,靜態函式

編譯時:參考引用型變數所屬的類中的是否有呼叫的靜態方法

執行時:參考引用型變數所屬的類中的是否有呼叫的靜態方法

簡單說,編譯和執行都看左邊

其實對於靜態方法,是不需要物件的,直接用類名呼叫

*/class fu

static void method() }

class zi extends fu

static void method() }

class duotaidemo3

}

學習第十天

一 介面 jdk1.8及之後新增了2中可以定義存在方法體的方法 預設方法 default關鍵字修飾的方法 使用 通過實現類物件使用 靜態方法 使用 通過介面名去呼叫 二 單例模式 保證類只能存在乙個例項 餓漢式 先建立物件,然後需要的人要這個物件,保證永遠使用的都是這個建立好的物件 執行緒安全的,效...

python學習第十天

class student count 0 def init self,name,age,address self.name name self.age age self.address address student.count 1 k print k w open a.txt w encodin...

菜鳥學習第十天

1.字串最大的特點 一旦初始化就不可以改變。不可改變的字串內容而不是指向字串的引用 2.string s abc 其中s是乙個類型別變數,abc 是乙個物件。3.string s1 abc 和string s2 new string abc s1 s2 和s1.equals s2 比較的是他們在記憶...