自學 java 筆記 day8(繼承下)

2021-07-10 07:26:16 字數 4035 閱讀 5021

知識點:多型的概述、多型的擴充套件性、多型的轉型、多型成員特點、obejec類-equals()、object類-tostring()

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

*例:動物中的貓、狗

*貓這個物件對應的型別是貓型別

*貓 x = new 貓();

*同時貓也是動物中的一種,也可以把貓稱為動物

*動物 y = new 貓();

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

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

體現*父類或者介面的引用指向或者接受自己的子類物件

作用*多型的存在提高了程式的擴充套件性和後期維護性

前提*需要存在繼承或者實現關係

例(驗證是否存在關係)

class a extends b{}

b b = new a();

if(b instanceof a)

class cat extends animal

public void catchmouse() }

class dog extends animal

public void kanjia() }

class pig extends animal

public void gongdi() }

//-----------------------------------------

class duotaidemo

public static void function(animal a)//animal a = new cat();

/*public static void function(cat c)//

public static void function(dog d)

public static void function(pig p)*/}

多型的特點

*成員函式

*編譯時:要檢視引用變數所屬的類中是否有所呼叫的成員

*在執行時:要檢視物件所屬的類中是否有所呼叫的成員

編譯時的型別由宣告該變數時使用的型別決定

,執行時的型別由實際賦給變數的物件決定。

如果編譯時型別和執行時型別不同,就出現多型。

成員變數

*只看引用變數所屬的類

向上轉型(子類→父類):(自動完成)

父類名稱 父類物件 = 子類例項 ;   

向下轉型(父類→子類):(強制完成)

子類名稱 子類物件 = (子類名稱)父類例項 ;

物件名   instanceof 類

判斷指定的變數名此時引用的真正型別是不是當前給出的類或子類;

/*

,多型的出現**中的特點(多型使用的注意事項)

第二個問題:如何使用子類特有方法。

*//*

動物,貓,狗。

*/class cat extends animal

public void catchmouse() }

class dog extends animal

public void kanjia() }

class pig extends animal

public void gongdi() }

//-----------------------------------------

class duotaidemo2

public static void function(animal a)//animal a = new cat();

else

*/if(a instanceof cat)

else if(a instanceof dog)

/*instanceof : 用於判斷物件的型別。 物件 intanceof 型別(類型別 介面型別)

*/ }

}

class fu

void method2()

static void method4() }

class zi extends fu

void method3()

static void method4() }

class duotaidemo4

}

電腦執行例項

/*

需求:電腦執行例項,

電腦執行基於主機板。

*/inte***ce pci

class mainboard

public void usepci(pci p)//pci p = new netcard()//介面型引用指向自己的子類物件。 }

}class netcard implements pci

public void close()

}class soundcard implements pci

public void close() }

/*class mainboard

public void usenetcard(netcard c) }

class netcard

public void close() }

*/class duotaidemo5

}

obejec類-equals()、object類-tostring()

所有類的公共父類,一旦乙個類沒有顯示地繼承乙個類則其直接父類一定是object。

一切資料型別都可用object接收

class ooxx extends object{}等價於class ooxx {}

常見方法

public boolean equals(object obj):物件比較

public int hashcode():取得該物件的hash碼

public string tostring():物件描述

object類的 tostring()方法:「物件的描述」

建議所有類都覆寫此方法

直接列印輸出物件時,會呼叫該物件的tostring()方法。//可以不寫出來

列印物件的時候,實際呼叫的物件實際指向的類的自我描述;

全限定類名+@+十六進製制的hashcode值,等價於

全限定類名+@+integertohexstring(該物件.hashcode)

equals也是判斷是否指向同乙個物件

沒有實際意義,有必要可以重寫

public boolean equals(object obj) {}

string 覆寫了 object的equals方法:只比較字元的序列是否相同

==用於判斷兩個變數是否相等

基本型別:

引用型別:必須指向同乙個物件,才true

只能比較有父子或平級關係的兩個物件

newstring("1") == new string("1"); ?  

/*

object:是所有物件的直接後者間接父類,傳說中的上帝。

該類中定義的肯定是所有物件都具備的功能。

object類中已經提供了對物件是否相同的比較方法。

如果自定義類中也有比較相同的功能,沒有必要重新定義。

只要沿襲父類中的功能,建立自己特有比較內容即可。這就是覆蓋。

*/class demo //extends object

public boolean equals(object obj)//object obj = new demo();

/* public boolean compare(demo d)

*/public string tostring() }

class person

class objectdemo

}

java學習筆記day8

多型 定義 某一類事物的多種存在形式。例 動物中貓,狗。貓這個物件對應的型別是貓型別。貓 x new 貓 同時貓也是動物中的一種,也可以把貓稱為動物。動物 y new 貓 動物是貓和狗具體事物中抽取出來的父型別。父型別引用指向了子類物件。多型 可以理解為事物存在的多種體現形態。人 男人,女人。動物 ...

自學前端day 8

在html檔案的裡寫 href style.css 寫上css檔案的路徑 自己走過的坑 外聯不起作用時,檢查你呼叫的css相對路徑是否正確!1 aaa.aa 表示從 根目錄開始,即 根目錄下的aaa.aa檔案 2 aaa.aa 表示本目錄下的aaa.aa 3 aaa.aa 表示上一級目錄中的aaa....

Day8 類的繼承

觀察兩個類的成員組成 提取相同的屬性和方法 寵物是父類,狗和金魚是子類。子類具有父類的屬性和方法。是使用已存在的類作為基礎建立新類的技術。單一繼承 只有乙個父類。父類可以叫做基類 超類。子類可以叫做派生類。子類可以繼承父類中的成員 屬性和方法 但是需要注意 1.private的成員不能繼承 2.子類...