IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
Java是一門面向?qū)ο蟮恼Z(yǔ)言,面向?qū)ο蟮闹饕攸c(diǎn)有封裝,繼承,多態(tài)
封裝,意思就是把類的一些屬性進(jìn)行封裝(“隱藏”),盡可能的避免直接訪問對(duì)象一些屬性,以保證其安全性,如果必須要訪問這些屬性,我們可以單獨(dú)的提供一些接口(共有方法)進(jìn)行訪問,這樣我們就可以避免因?yàn)橹苯釉L問屬性信息造成的誤操作。
繼承,在我們的生活中也有很多的繼承關(guān)系,比如子承父業(yè),在Java中,我們也可以有繼承的概念,但是繼承只存在于父子類(接口)中,比如我們經(jīng)常說(shuō)的Dog類繼承于Animal類,動(dòng)物類Animal具有自己的一些屬性,Dog屬于Animal的一種,所以具有Animal的一些屬性,但是Dog也有自己的一些特定屬性,這時(shí)候如果我們單獨(dú)在重新創(chuàng)建一個(gè)類Dog,就需要重新寫一遍Animal類的屬性,既費(fèi)時(shí)又不好維護(hù),這時(shí)候我們就可以使用繼承,使用Dog類繼承Animal類,這時(shí)候,Dog就包含了Animal類的一些屬性,就不需要我們多次重復(fù)寫這些屬性了。
多態(tài),即對(duì)于同一個(gè)對(duì)象,可能執(zhí)行出不同的結(jié)果,比如上面的Animal類,我們創(chuàng)建他的兩個(gè)子類,分別為Dog和Cat,Animal有個(gè)方法叫做public void jiaoSheng() { System.out.println( “動(dòng)物叫聲” ) ; } 兩個(gè)子類分別重寫了這個(gè)方法,實(shí)現(xiàn)形式Dog:public void jiaoSheng() { System.out.pringln( “狗叫聲” ) ; }, Cat: public void jiaoSheng() { System.out.println( “貓叫聲” ) ; },這時(shí)候我們可以創(chuàng)建一個(gè)Animal對(duì)象 animal = new Animal( );這時(shí)候我們調(diào)用animal.jiaoSheng() ;打印出 “動(dòng)物叫聲”;當(dāng)animal = new Dog( ) ;的時(shí)候,我們調(diào)用animal.jiaoSheng() ; 打印出 “狗叫聲”;當(dāng) animal = new Cat() ;的時(shí)候,我們調(diào)用animal.jiaoSheng() ; 打印出“貓叫聲”;對(duì)于同一個(gè)對(duì)象animal我們調(diào)用同一個(gè)方法的時(shí)候,打印出的結(jié)果是不相同的,利用多態(tài),我們就可以進(jìn)行很多的擴(kuò)展,而不需要過多的去修改原先的代碼,可以保證代碼的可維護(hù)性;從上面我們可以看得出來(lái),如果要有多態(tài),需要滿足三個(gè)條件,第一個(gè)繼承(或?qū)崿F(xiàn)接口),第二個(gè)重寫,也就是需要重寫父類里面的方法,否則不會(huì)實(shí)現(xiàn)多態(tài),對(duì)象調(diào)用的還是父類的方法,第三個(gè)父類引用指向子類對(duì)象,就像上面的animal他是一個(gè)Animal類的對(duì)象,但我們new的時(shí)候,創(chuàng)建的是子類Dog和Cat類的兩個(gè)對(duì)象;
以下為源碼示例:
public class Animal{
public void jiaoSheng() {
System.out.println(“動(dòng)物叫聲”);
}
}
public class Dog extends Animal{
@Override
public void jiaoSheng() {
System.out.println(“狗叫聲”);
}
}
public class Cat extends Animal{
@Override
public void jiaoSheng() {
System.out.println(“貓叫聲”);
}
}
>>本文地址:http://uj2y2uok.com/zhuanye/2020/49115.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?