使用場景:
在c#和Java中:
1.接口可以實現“多繼承”(多實現),一個類只能繼承自一個父類,但是可以實現多個接口。
2.接口解決了不同類型之間的多態問題,比如魚與船不是同一類型,但是都能在水里“游泳”,只是方式不一樣,要對“游泳”實現多態,就只能考慮接口。
c#中接口的使用語法:
public interface IFlyable { //接口里面能包含什么成員,接口里面只能包含【方法】 //方法、屬性、索引器、事件 → “方法” //接口中的所有成員,都不能顯示的寫任何訪問修飾符 //默認是public的訪問修飾符 void SayHi(); void M1(string msg); //在接口中這樣寫表示是一個未實現的屬性。 string Name { get; set; } //索引器 string this[int index] { get; set; } //事件 event Action MyEvent; }
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Java中接口的使用語法:
Java中接口要注意的事項 : 1. 接口是一個特殊的類。 2. 接口的成員變量默認的修飾符為: public static final 。那么也就是說接口中的成員變量都是常量。 3. 接口中的方法都是抽象的方法,默認的修飾符為: public abstract。 4. 接口不能創建對象。 5. 接口是沒有構造方法。 6. 接口是給類去實現使用的,非抽象類實現一個接口的時候,必須要把接口中所有方法全部實現。
接口的定義格式:
interface 接口名{
}
實現接口的格式:
class 類名 implements 接口名{
}
1 //普通的鉛筆類 2 class Pencil{ 3 4 String name; 5 6 public Pencil(String name){ 7 this.name = name; 8 } 9 10 public void write(){ 11 System.out.println(name+"沙沙的寫..."); 12 } 13 } 14 15 16 //橡皮接口 17 interface Eraser{ 18 public void remove(); 19 } 20 21 22 //帶橡皮的鉛筆 23 class PencilWithEraser extends Pencil implements Eraser { 24 25 public PencilWithEraser(String name){ 26 super(name); 27 } 28 29 30 public void remove(){ 31 System.out.println("塗改,塗改...."); 32 } 33 } 34 35 36 class Demo 37 { 38 public static void main(String[] args) 39 { 40 PencilWithEraser p = new PencilWithEraser("2B鉛筆"); 41 p.write(); 42 p.remove(); 43 } 44 }