java 之 继承 super关键籽 this关键字 final关键字
繼承
語(yǔ)法:
使用 extends 來(lái)繼承
class子類(lèi)??? extends父類(lèi){
子類(lèi)屬性
子類(lèi)方法
}
繼承的特點(diǎn):
1、子類(lèi)會(huì)把父類(lèi)所有的屬性和方法繼承下來(lái),final修飾的類(lèi)是不可以被繼承的
2、子類(lèi)還可以·擁有自己獨(dú)特的屬性和方法
3、父類(lèi)更通用,子類(lèi)更具體
4、子類(lèi)只能獲得父類(lèi)中非private的屬性,如果想要繼承就得提供公共的set和get方法
私有的方法是無(wú)法繼承下來(lái)的
5、java中只能做單繼承
6、Java支持多級(jí)繼承
繼承的好處:提高代碼的復(fù)用性
super關(guān)鍵字
1、子類(lèi)實(shí)例化的過(guò)程中父類(lèi)的構(gòu)造器先被調(diào)用,然后在調(diào)用子類(lèi)的構(gòu)造器
2、子類(lèi) 的構(gòu)造器內(nèi)被調(diào)用的時(shí)候父類(lèi)的默認(rèn)構(gòu)造器就會(huì)被調(diào)用(父類(lèi)如果存在著有參數(shù)
的構(gòu)造器,一定要把默認(rèn)構(gòu)造器顯式的定義出來(lái),否者會(huì)被覆蓋)
3、子類(lèi)在調(diào)用父類(lèi)有參數(shù)的構(gòu)造器的時(shí)候使用 super(參數(shù)列表…)這這時(shí)父類(lèi)的默認(rèn)
構(gòu)造器就不會(huì)被調(diào)用了
4、super()的調(diào)用必須放在方法的第一行
5、super可以表示父類(lèi)的引用,我們可以使用super和this來(lái)區(qū)分父類(lèi)和子類(lèi)中同的屬性。在子類(lèi)中訪問(wèn)屬性的查找順序首先在子類(lèi)中查找指定的屬性名字,如果在子類(lèi)中沒(méi)有該屬性,那么就去父類(lèi)中去查找該屬性。方法也是一樣的當(dāng)子類(lèi)和父類(lèi)有同樣的方法時(shí)通過(guò)子類(lèi)調(diào)用的這個(gè)相同的方法時(shí)調(diào)用的是子類(lèi)的方法。但是我們也可以通過(guò)super對(duì)父類(lèi)的引
?
來(lái)調(diào)用父類(lèi)的方法。
this關(guān)鍵字
1、代表當(dāng)前類(lèi)的指定實(shí)例和引用
2、可以區(qū)分同名屬性和局部變量
3、通過(guò)this可以調(diào)用同類(lèi)中的構(gòu)造器(this(),this(參數(shù)列表))
4、調(diào)用本類(lèi)里面的屬性,this.屬性名,this.方法()
?
final關(guān)鍵字
屬性上
final修飾在屬性上,屬性的值就不能被改變
語(yǔ)法:
權(quán)限修飾符 static final 數(shù)據(jù)類(lèi)型 屬性名 = 值
屬性名一般使用采用大寫(xiě),多個(gè)單詞使用下劃線來(lái)分隔。而且這種常量多定義在接口中
方法上
final修飾的方法不能被復(fù)寫(xiě)
語(yǔ)法:
權(quán)限修飾符 final 返回值類(lèi)型 方法名(參數(shù)列表){
方法體
}
類(lèi)上
使用final來(lái)修飾的類(lèi)是不可以被繼承的
語(yǔ)法:
final class 類(lèi)名{
}
在類(lèi)中所有的private方法都隱式的指向final,可以說(shuō)private、final修飾的方法在此時(shí)的效果是相同的
使用final的原因
1、鎖定
2、效率
詳見(jiàn)《java編程思想》
?
轉(zhuǎn)載于:https://www.cnblogs.com/zero-vic/p/9931236.html
總結(jié)
以上是生活随笔為你收集整理的java 之 继承 super关键籽 this关键字 final关键字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 日本留学户口本上家庭成员的信息对申请人有
- 下一篇: 领扣(LeetCode)最长公共前缀 个