java接口(Interface)的一些知識點

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中其實已經幫我們實現並隱藏了,只不過不是我們自己實現的,我們只需要調用即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章