1 java修飾符
java中訪問修飾符public、private、protecte、default的意義講解:
public(接口訪問權限): Java語言中訪問限制最寬的修飾符,一般稱之爲“公共的”。被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包(package)訪問。
private(無法訪問): Java語言中對訪問權限限制的最窄的修飾符,一般稱之爲“私有的”。被其修飾的類、屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。
protected(繼承訪問權限): 介於public 和 private 之間的一種訪問修飾符,一般稱之爲“保護形”。被其修飾的類、屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。
default(包訪問權限):即不加任何訪問修飾符,通常稱爲“默認訪問模式“。該模式下,只允許在同一個包中進行訪問。
2 java接口內定義抽象方法
在定義接口時,如果使用 private 修飾符Eclipse會提示如下錯誤:Illegal modifier for the interface method test01; only public & abstract are permitted
對接口修飾符測試如下:
對接口中方法修飾符測試:
public interface Test01 {
void test01() ;
public void test02() ;
public abstract void test03() ;
}
編譯後的.class文件
public abstract interface Test01
{
public abstract void test01();
public abstract void test02();
public abstract void test03();
}
解釋:根據編譯結果 會發現接口中定義的方法修飾符其實都爲 public abstract 無論代碼中是否做了標示
如 Runnable接口
public interface Runnable {
public abstract void run();
}
Callable接口
public interface Callable<V> {
V call() throws Exception;
}
對接口修飾符測試:
interface Test01 {
void test01() ;
public void test02() ;
public abstract void test03() ;
}
編譯後的.class文件
abstract interface Test01
{
public abstract void test01();
public abstract void test02();
public abstract void test03();
}
解釋:根據編譯結果 我們對接口沒有做public修飾符時 使用的仍是默認訪問權限,也即:只用同一包下的類能實現該類