2014-11-04 45 views
0

在Java中,從我的角度來看,這是沒有意義的默認可見類有一個protected成員。從我的觀點來查看,它沒有任何意義,因爲在Java中 默認可見性=封裝級 保護中的Java =包級別+子類(不管包)可以默認知名度的Java類有一個受保護的成員?

class TestClass{ 

protected int addIntegers(int a, int b){ 

     return (a+b); 
} // end of protected addIntegers(int a, int b){ 

} 

難道能見度正確地說,上面的代碼是無意義的?

回答

2

你可以在同一個包中擴展一個公共類Foo,擴展你的Base類,並在另一個包中擴展另一個類Bar,擴展Foo並覆蓋受保護的方法。

package a; 

class Base { 
    protected void bang() { 
    } 
} 

package a; 

public class Foo extends Base { 
} 

package b; 

public class Bar extends Foo { 
    @Override 
    protected void bang() { 
    } 
} 
+0

福氣!所以這是一種查看屬於類中的默認可見類的受保護方法的方法在與默認可見類關聯的包之外。接得好!!!! – 2014-11-04 07:31:59