//類 private:私有
public
class
student
//set
public
void
setname
(string name)
//學習()
//睡覺()
//alt+ insert 新增get set
public
intgetid()
public
void
setid
(int id)
public
char
get***()
public
void
set***
(char ***)
public
intgetage()
public
void
setage
(int age)
else}}
/**測試類
* public static void main(string args)
public
void
setage
(int age)
public
void
say(
)}
package com.oop.demo04;
//老師 is 人 子類 派生類
public
class
teacher
extends
person
package com.oop.demo04;
//學生 is 人 子類,派生類
//子類擁有父類所有方法
public
class
student
extends
person
//乙個專案應該只存在乙個main方法
public
class
}
super注意點:
1.super呼叫父類的構造方法,必須在構造方法的第乙個
2.super只能出現在子類的方法或者構造方法中
3.super和this不能同時呼叫構造方法
vs this:
1.代表的物件不同
this :本身呼叫者這個物件
super:代表父類物件的應用
2.前提不同
this:沒有繼承也可以使用
super:只能在繼承條件下才能使用
3.構造方法不同
this:本類的構造
super:父類的構造
public
class
b
public
class
aextends
b}
//靜態和非靜態方法的區別很大!!!
a a =
newa()
; a.
test()
;//a
//父類的引用指向了子類
b b =
newa()
;//子類重寫了父類的方法
b.test()
;//b
//靜態和非靜態方法的區別很大!!!
//非靜態的方法
}
總結:
重寫:需要有繼承關係,子類重寫父類的方法!
1.方法名和引數列表完全相同
2.修飾符:(從父類到子類)範圍可以擴大:public--->protected-->default-->private
3.丟擲的異常:(從父類到子類)範圍可以被縮小,不能被擴大:classnotfoundexception ----> exception(大)
重寫:子類方法和父類必須一致!方法體不同!
為什麼需要重寫?
1.父類的功能子類不一定需要或者,不一定滿足。
快捷鍵:
//override 重寫 alt + insert
//人---------> 父類
public
class
person
}
//學生---------> 子類
public
class
student
extends
person
public
void
eat(
)}
public
class
}
多型注意事項:
1.多型是方法的多型,屬性沒有多型。
2.父類和子類有聯絡 型別轉換異常,classcastexception
3.存在條件:繼承關係,方法需要重寫,父類引用指向子類物件:father f1 = new son()
不能重寫的情況:
1.static方法,屬於類,不屬於例項
2.final 屬於常量;
3.private方法
public
class
//將person轉換成student類,就可以使用student類的方法了!
//父轉子
student s1 =
(student) person;
s1.go()
;//or
((student) person).go
();//子轉父 ,可能丟失自己本來的一些方法!
student.go(
);person person1 = student;
// person1.go(); 報錯
/* 1.父類的引用指向子類的物件
2.把子類轉換為父類,向上轉換
3.把父類轉換為子類,強制轉換
4.方便方法呼叫,減少重複**,簡潔**!
封裝、繼承、多型!
越來越抽象
抽象類*/
物件導向三大特徵
1.繼承 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或多個父類,父類又可稱為基類或超類,新建的類稱為派生類或子類 python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass class parentclass2 定義父類 p...
物件導向三大特徵
是指將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問而是通過類提供的方法實現類內資訊的操作和訪問。可以通過j a中的訪問控制符來實現。實現復用。j a中,通過extends實現繼承 每個類只有乙個直接父類 j a.lang.object是所有類的直接 間接父類 子類獲得父類的全部屬性和方法 除...
物件導向的三大特徵
封裝 物件的資訊和內部的邏輯結構隱藏起來private 只能當前類的內部 被訪問default 包訪問許可權 protected 包一下類,其他類都可以訪問 public 所有類訪問 為每個屬性建立一對賦值和取值 繼承 在現有類的基礎上派生出新的類,新類將共享現有類的屬性和行為特徵,並且還可以在派生...