Java接口
(1).接口,在JAVA編程中是一個抽象類型,可以說是抽象方法的集合,裏面包含了很多個的抽象方法,抽象方法也就是沒有實現的方法。
(2).接口並不是類,但是與類相似
下面以代碼的方式來理解一下接口。
1.創建一個接口並實現
和創建類一樣,在你的包下面中 new ->interface
創建了一個音頻接口
//抽象方法實現聲音
package me;
public interface Audio
{
public void voice();
}
在主類中可以發現,接口可以創建對象,但是不能通過new關鍵字實例化,必須有一個類來實現他的抽象方法
public static void main(String[] args)
{
Audio a ;
Audio a = new Audio(); //錯誤不能通過new關鍵字實例化
}
引入一個xiaomiAudio類來實現抽象方法
public class xiaomiAudio implements Audio
{
@Override
public void voice()
{
System.out.println("發出聲音dadada");
}
}
在主類中,控制檯打印 發出聲音dadada
**
2 接口與繼承
類只可以繼承一個類,但可以實現多個接口
package example;
interface a {
public void haha();
}
interface b{
public void sayHello();
}
class Language implements a,b{
@Override
public void sayHello()
{
System.out.println("hello");
}
@Override
public void haha()
{
System.out.println("haha");
}
}
public class my
{
public static void main(String[] args)
{
Language lan = new Language();
lan.haha();
lan.sayHello();
}
}
3關於接口的使用***
關於這個問題,可能大家會遇到一種現象,在學習的過程中呢,常遇到這麼一種情況,
Connection conn = DriverManager.getConnection(connectionUrl, username, password);
System.out.println("連接成功!");
///////////////////////////////////////////////
// 數據庫查詢, Statement語句 ResultSet結果集
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student");
在這個裏面Connection是一個接口,但是卻可以直接執行conn.createStatement(); 這個方法。然而我並沒有寫這個方法的實現,這是怎樣一種情況呢?下面我用代碼講解一下
package example;
interface WorldHuman
{
public void sayHello();
}
class ChineseHuman implements WorldHuman
{
@Override
public void sayHello()
{
System.out.println("你好");
}
}
class HumanUtil
{
public static WorldHuman getHuman()
{
return new ChineseHuman();
}
}
public class my
{
public static void main(String[] args)
{
WorldHuman me = HumanUtil.getHuman();
me.sayHello();
}
}
最後的打印結果呢,就實現接口的抽象方法打印了出來。打印 “ 你好” 二字。
在這個裏面 我們會發現,如果把ChineseHuman和HumanUtil這兩個類隱藏起來呢,其他的功能照樣會實現,這也就解釋了爲什麼上面的Connection接口中可以直接調用方法,因爲內部的方法已經
有人幫我們實現了,我們直接調用即可。隱藏後是這樣
package example;
interface WorldHuman
{
public void sayHello();
}
public class my
{
public static void main(String[] args)
{
WorldHuman me = HumanUtil.getHuman();
me.sayHello();
}
}
接口,其實就是開發中方法集合的規範。接口裏的抽象方法,API中其實已經幫我們實現並隱藏了,只不過不是我們自己實現的,我們只需要調用即可。