接口(interface)


一:概念

接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

接口是抽象方法和常量的定義的集合。

從本質上講接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現。

接口並不是類,編寫接口的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。接口則包含類要實現的方法。

接口無法被實例化,但是可以被實現。一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現的對象。


二:接口的聲明

格式如下:

[可見度] interface 接口名稱 [extends 其他的接口名] {
        // 聲明變量
        // 抽象方法
}

三:接口的特點

  • 用interface來定義
  • 接口中的所有成員變量默認都是由 public static final修飾的。
  • 接口中的所有方法默認都是由 public abstract修飾的。
  • 接口沒有構造器。
  • 接口采用多層繼承機制。
  • 接口也可以繼承其它接口。

四:接口應用實例

設計圖示

Cooking.java 接口

/*
 * 廚藝接口
 * 
 */
public interface Cooking {
	void fry(); // 炒菜
}

Singing.java 接口

/*
 * 唱歌的接口
 */
public interface Singing {
	void singing(); // 唱法
}

Person.java 抽象類

public abstract class Person
// 抽象類
{
	int age;
	String name;
	String sex;

	// 抽象方法
	public abstract void ShowInfo();
}

SCTeacher.java

/*
 * 描述會唱歌的廚子是一個老師的類
 */

//當類實現接口的時候,類要實現接口中所有的方法。否則,類必須聲明為抽象的類。
//類使用implements關鍵字實現接口。在類聲明中,Implements關鍵字放在class聲明后面。

public class SCTeacher extends Person implements Cooking, Singing

{
	String course; // 老師教的科目

	public void setInfo()
	// 設置屬性
	{
		super.name = "張三";
		super.age = 18;
		super.sex = "男";
		this.course = "計算機科學與技術";
	}

	@Override
	public void singing()
	// singing接口的方法重寫
	{
		System.out.println(super.name + "老師擅長美聲唱法");

	}

	@Override
	public void fry()
	// cooking接口的方法重寫
	{
		System.out.println(super.name + "老師是拿手的廚藝是做小龍蝦!");
	}

	@Override
	public void ShowInfo() {
		System.out.println("會唱歌的廚子老師的信息是:");
		System.out.println(super.name);
		System.out.println(super.age);
		System.out.println(super.sex);
		System.out.println(this.course); // 本類屬性用this

	}

}

T1_interface.java 實例化

public class T1_interface {
	public static void main(String[] args) {
		SCTeacher tea = new SCTeacher(); // 實例化老師類
		tea.setInfo(); // 設置老師信息
		tea.ShowInfo(); // 打印老師信息

		System.out.println("觀看接口的方法實現:");

		tea.fry();
		tea.singing();
	}
}

運行結果:

會唱歌的廚子老師的信息是:
張三
18

計算機科學與技術
觀看接口的方法實現:
張三老師是拿手的廚藝是做小龍蝦!
張三老師擅長美聲唱法


五:總結

  1. 如果實現接口的類中沒有實現接口中的全部方法,必須將此類定義為抽象

  2. 抽象類是對於一類事物的高度抽象,其中既有屬性也有方法。接口是對方法的抽象,也就對一系列動作的抽象。

  3. 當需要對一類實物抽象的時候,也應該是使用抽象類,好形成一個父類。 當需要對一系列的動作抽象,就是用接口,需要使用這些動作的類去實現想要的接口即可。

  4. 當類實現接口的時候,類要實現接口中所有的方法。否則,類必須聲明為抽象的類。類使用implements關鍵字實現接口。在類聲明中,Implements關鍵字放在class聲明后面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM