- 1、接口慨念
類是一種具體實現體工三,而接口定義了某一批類所需要遵守的規(guī)范迁酸,接口不關心這些類的內部數據,也不關心這些類里方法的實現細節(jié)俭正,它指明了這些類里必須提供某些方法奸鬓。 - 2、接口定義基本語法:
[修飾符]interface 接口名 [extends 父接口1段审,父接口2全蝶,...]
{
常量定義...
抽象方法...
}
3闹蒜、接口定義
常量:接口定義中屬性是常量,即使定義時不添加public static final
修飾符抑淫,系統(tǒng)也會自動加上绷落。
方法:接口中的方法都是抽象方法,即使定義時不添加public abstract
修飾符始苇,系統(tǒng)也會自動加上砌烁。4、 使用接口
一個類可以實現一個或多個接口催式,實現接口使用implements
關鍵字函喉。Java中一個類只能繼承一個父類,是不夠靈活的荣月,通過實現多個接口可以做補充管呵。
繼承父類實現接口的語法為:
[修飾符] class 類名 extends 父類 implements 接口1, 接口2...
{
類的具體內容
//1哺窄、如果繼承了抽象類捐下,需要實現抽象方法;
//2萌业、要實現接口中的抽象方法坷襟。
}
注釋:如果要繼承父類,繼承父類必須在實現接口之前(也就是說:extends和implements關鍵字不可以調換順序)
IPlayGame.java(接口文件)
package com.imooc;
public interface IPlayGame {
public void playGame(); //只定義方法生年,而不需要實現
}
Psp.java(接口實現文件)
創(chuàng)建一個類Psp.java婴程,實現上面的接口:
package com.imooc;
public class Psp implements IPlayGame {
//選擇實現接口文件,回自動實現接口文件的方法
@Override
public void playGame() {
System.out.println("Psp具有了玩游戲的功能");
}
}
SmartPhone.java(接口實現文件)
package com.imooc;
public class SmartPhone extends Telephone implements IPlayGame{
//繼承的Telephone 類為抽象類抱婉,所以自動實現抽象類方法
@Override
public void call() {
// TODO Auto-generated method stub
System.out.println("通過語音打電話");
}
@Override
public void message() {
// TODO Auto-generated method stub
System.out.println("通過語音來發(fā)短信");
}
//實現IPlayGame接口档叔,自動實現接口中的方法
@Override
public void playGame() {
// TODO Auto-generated method stub
System.out.println("SmartPhone具有了玩游戲的功能");
}
}
Initail.java(應用文件)
IPlayGame pl1 = new SmartPhone();
pl1.playGame();
IPlayGame pl2 = new Psp();
pl2.playGame();
- 5.通過匿名內部類使用接口
接口在使用過程當中,還經常與匿名內部類配合使用
匿名內部類就是沒有名字的內部類授段,多用來關注實現而不關注實現類的名稱蹲蒲。
//方式一:
IPlayGame pl3 = new IPlayGame(){
@Override
public void playGame() {
// TODO Auto-generated method stub
System.out.println("使用匿名類的方式實現接口");
}
};
pl3.playGame();
//方式二:
new IPlayGame(){
@Override
public void playGame() {
// TODO Auto-generated method stub
System.out.println("使用匿名類的方式實現接口");
}
}.playGame();