封裝占贫、繼承桃熄、多態(tài)
一、封裝
? ? ? ?簡(jiǎn)單的說(shuō)型奥,屬性能夠描述事物的特征瞳收,方法能夠描述事物的動(dòng)作。封裝就是把同一類事物的共性(包括屬性和方法)歸到同一類中厢汹,方便使用螟深。
? ? ? ?封裝是指利用抽象數(shù)據(jù)類型把數(shù)據(jù)和基于數(shù)據(jù)的操作封裝起來(lái),使其成為一個(gè)不可分割的整體烫葬,數(shù)據(jù)隱藏在抽象數(shù)據(jù)內(nèi)部界弧,盡可能的隱藏?cái)?shù)據(jù)細(xì)節(jié),只保留一些接口使其與外界發(fā)生聯(lián)系搭综。也就是說(shuō)用戶無(wú)需知道內(nèi)部的數(shù)據(jù)和方法的具體實(shí)現(xiàn)細(xì)節(jié)垢箕,只需根據(jù)留在外部的接口進(jìn)行操作就行。
如下:
public class Person{
/*
*對(duì)屬性的封裝一個(gè)人的姓名兑巾、性別条获、年齡都是這個(gè)人的私有屬性
*/
private String name;
private String sex;
private int age;
private Wife wife;
/*
* setter()、getter()是該對(duì)象對(duì)外開(kāi)發(fā)的接口
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
二蒋歌、? ? ? 繼承
? ? ? ?簡(jiǎn)單來(lái)說(shuō)繼承就是從已有的類中派生出新的類帅掘,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力堂油。
? ? ? 繼承關(guān)系是傳遞的修档。若類C繼承類B,類B繼承類A(多繼承)称诗,那么C同時(shí)繼承下來(lái)A和B的屬性和方法
class Person{
public String name = "小明";
public int age = 20;
}
class Teacher extends Person {
void study() {
System.out.println("教書");
}
}
public class Show {
public static void main(String args[]) {
Teacher t= new Teacher();
t.name = "小紅";
// t.age = 20;
System.out.println("name=" + t.name + "+++++++" + "age=" + t.age);
}
}
三萍悴、? ? ? 多態(tài)
? ? 必要條件:方法的重寫、重載與動(dòng)態(tài)連接構(gòu)成多態(tài)性寓免;
? ? 向上轉(zhuǎn)型
?我定義了一個(gè)子類Cat癣诱,它繼承了Animal類,那么后者就是前者的父類袜香。我可以通過(guò)
Cat c = new Cat();? ???? 例化一個(gè)Cat的對(duì)象撕予,這個(gè)不難理解。
但當(dāng)我這樣定義時(shí): Animal a = new Cat();
? ? ? ?它表示我定義了一個(gè)Animal類型的引用蜈首,指向新建的Cat類型的對(duì)象实抡。由于Cat是繼承自它的父類Animal欠母,所以Animal類型的引用是可以指向Cat類型的對(duì)象的。那么這樣做有什么意義呢吆寨?因?yàn)樽宇愂菍?duì)父類的一個(gè)改進(jìn)和擴(kuò)充赏淌,所以一般子類在功能上較父類更強(qiáng)大,屬性較父類更獨(dú)特啄清,定義一個(gè)父類類型的引用指向一個(gè)子類的對(duì)象既可以使用子類強(qiáng)大的功能六水,又可以抽取父類的共性。所以辣卒,父類引用只能調(diào)用父類中存在的方法和屬性掷贾,不能調(diào)用子類的擴(kuò)展部分;因?yàn)楦割愐弥赶虻氖嵌阎凶宇悓?duì)象繼承的父類荣茫;同時(shí)想帅,父類中的一個(gè)方法只有在父類中定義而在子類中沒(méi)有重寫的情況下,才可以被父類類型的引用調(diào)用啡莉;對(duì)于父類中定義的方法港准,如果子類中重寫了該方法,那么父類類型的引用將會(huì)調(diào)用子類中的這個(gè)方法票罐,這就是動(dòng)態(tài)連接叉趣。
? ? ?指向子類的父類引用由于向上轉(zhuǎn)型了,它只能訪問(wèn)父類中擁有的方法和屬性该押,而對(duì)于子類中存在而父類中不存在的方法,該引用是不能使用的阵谚,盡管是重載該方法蚕礼。若子類重寫了父類中的某些方法,在調(diào)用該些方法的時(shí)候梢什,必定是使用子類中定義的這些方法(動(dòng)態(tài)連接奠蹬、動(dòng)態(tài)調(diào)用)。