Java日誌第13天 2020.7.18
第六章 介面淺談
6.1 一個簡單介面的例子
在介面中只能包含抽象的方法和常量,不能有變數、初始化塊和建構函式
介面中的方法都是抽象類,並沒有方法具體的實現。介面中的方法必須由介面的實現類來實現。
6.2 介面的宣告
interface介面定義分為介面的宣告和介面體。其中,介面體有常量定義和方法定義兩部分組成。
定義介面的基本格式:
[修飾符] interface 介面名 [extends 父介面名列表]{
[public][static][final] 常量
[public][abstract] 方法
}
public interface UserDao{
public void addUser(String uname);//定義一個增加使用者的方法public void delUser(String uname);//定義一個刪除使用者的方法
}
*與Java的類檔案一樣。介面檔案的檔名必須與介面名相同。
6.3 使用介面
6.3.1 介面的使用
在類中實現介面可以使用關鍵字implements,基本格式如下:
[修飾符] class <類名> [extends 父類名] [implements 介面列表]{
}
public class UserDaoImpl implements UserDao {
@Override
public void addUser(String uname){
System.out.println("UserDaoImpl addUser:"+uname);}
@Override
public void delUser(String uname){
System.out.println("UserDaoImpl delUser:"+uname);
}
}
對於介面的使用,是必須由介面的實現類來實現,介面的例項化如下:
介面 物件名 = new 介面的實現類();
6.3.2 Java介面的特徵歸納
(1)Java介面中的成員變數預設都是public、static、final型別的,而對於public、static、final其實都可以省略,介面中的成員變數為常量,並且建議全部使用大寫,單詞之間用"_"分隔。
(2)Java介面中的方法預設都是public、abstract型別的,並且public和abstract是可以省略的,介面中的方法是沒有方法體,不能被例項化。
(3)Java介面中只能包含public、static、final型別的成員變數和public、abstract型別的成員方法。
介面中的變數必須初始化,並且方法必須是抽象方法,否則會報錯。
(4)介面中沒有構造方法,不能被例項化
(5)一個介面不能實現另一個介面,但它可以繼承多個其他的介面。
(6)Java介面必須通過類來實現它的實現類來實現抽象方法
(7)當類實現了某個Java介面時,它必須實現介面中的所有抽象方法,否則,這個類必須宣告為抽象。
(8)不允許建立介面的例項,但允許定義介面型別的引用變數,該引用變數引用實現了這個介面的類的例項。
(9)一個類智慧繼承一個直接的父類,但可以實現多個介面,間接地實現了多繼承。
介面有什麼用呢?它和繼承不一樣嗎?
明天接著把第六章看完,做做題!