您好,登錄后才能下訂單哦!
protected
用來修飾 域,代表域的訪問權(quán)限是:包權(quán)限 或者 不同包,但是是子類 ;
final 修飾常量
只要是該常量代入的計(jì)算式,在編譯時(shí)期,就會(huì)被執(zhí)行計(jì)算,以減輕運(yùn)行時(shí)的負(fù)擔(dān)。(只對基本數(shù)據(jù)類型的計(jì)算式,奏效)
final 修飾引用
這個(gè)有個(gè)地方需要說下,只是引用指向的對象,一經(jīng)確定,就不再可以修改為指向別的對象。但是對象本身的屬性,可以隨意改變;
空白 final
就是被申明為final,但是未賦值的域 ,稱為 空白final ;但是在使用之前,必須對其進(jìn)行賦值;
這樣就可以靈活的為其進(jìn)行賦值,但是又保持了其不可更改的特性 ;
final 參數(shù)
就是方法參數(shù),被final修飾了;跟final引用一樣,無法更改其指向其他對象 ;
final 方法
被修飾的方法,只能被繼承,但是不能被覆蓋 ;被修飾為final的方法,其實(shí)是用了前期綁定,因此,在之前這樣做是可以提升效率的;
final 類
final類不可被繼承,final類的方法,都被隱式的設(shè)定為final,但是域,不是final的,可以根據(jù)自己的意愿來設(shè)定 ;
子父類中同名的 private 方法
public class test {
public static void main(String[] args) {
A a = new B();
a.haha(); ; // error
a.hehe(); ; // ok
}
}
class A{
private void haha(){
System.out.println(“A”);
}
public void hehe(){
System.out.println("A");
}
}
class B extends A{
private void haha(){
System.out.println(“B”);
}
}
它們之間是沒有任何關(guān)系的;只是恰巧重名了 ;它們不能發(fā)生多態(tài)的行為;
方法的覆蓋和向上轉(zhuǎn)型,只針對方法是父類中能被子類繼承的方法 ;因此,它們之間是沒有向上轉(zhuǎn)型、覆蓋的說法的,也就沒有多態(tài)的行為;
java中的前期綁定
我們都知道,java是采用后期綁定的;
但是,其實(shí)在java中有的地方,也采用可前期綁定;比如:static方法、final方法;這兩種方法是前期綁定的;
由于private是隱式的final方法,因此,private方法也是前期綁定哦;
對了 構(gòu)造器也是前期綁定,因?yàn)?,其?shí),那個(gè)構(gòu)造器是隱式的static方法 ;
免疫多態(tài)
域 和 靜態(tài)方法 是不會(huì)產(chǎn)生多態(tài)行為的 ;
任何對 域 的操作,都是在 編譯時(shí)期 完成的,此時(shí)編譯器認(rèn)為父類引用的就是父類的對象,因此,根本不存在多態(tài)的可行性;
靜態(tài)方法,不存在多態(tài)的原因是:靜態(tài)方法 是 前期綁定,此時(shí)編譯器,也是單純的認(rèn)為,父類引用指向的就是父類對象,天真!
對于它們,是 編譯看左邊,運(yùn)行看左邊;
class A {
public int a = 1 ;
private void haha(){
System.out.println("A");
}無錫哪家醫(yī)院婦科好 http://www.bhnfk.com/
public void hehe(){
System.out.println("A");
}
public static void aa(){
System.out.println("aa");
}
}
class B extends A{
public int a = 2 ;
private void haha(){
System.out.println(“B”);
}
public static void aa(){
System.out.println("bb");
}
}
public class test {
public static void main(String[] args) {
A a = new B();
System.out.println(a.a);
a.aa();
}
}
// output:1 aa ;都是輸出父類的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。