Javaoop_接口

在軟件中,接口一樣是一種規範和標準,它們能夠約束類的行爲,編程

接口(Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合。接口一般以interface來聲明。編程語言

一個類經過繼承接口的方式,從而來繼承接口的抽象方法。若是一個類只由抽象方法和全局常量組成,ide

那麼這種狀況下不會將其定義爲一個抽象類。只會定義爲一個接口,因此接口嚴格的來說屬於一個特殊的類,測試

而這個類裏面只有抽象方法和全局常量,就連構造方法也沒有。spa

接口示例--code

public interface Eateble { 
public static final String MSG = "hello";//全局常量
    public abstract void print();//抽象方法
}

2、接口的使用對象

因爲接口裏面存在抽象方法,因此接口對象不能直接使用關鍵字new進行實例化。接口的使用原則以下:  blog

1.接口不能被實例化,接口是比抽象類抽象程度更高的類型。繼承

2.一個接口最好只定義一個方法,防止接口污染接口

 3.接口不能有構造,抽象類能夠有構造

 4.接口是一種數據類型 

5.接口能夠多繼承  

6.接口中全部的字段都必須是公有的靜態常量

 7.接口全部方法都是公有的抽象方法

 8.一個類實現某個接口的話,必須重寫他的全部的抽象方法。

 9.接口只是爲實現它的類定義了規範,保證明現類的方法簽名和接口中方法一致

10接口必需要有子類,但此時一個子類能夠使用implements關鍵字實現多個接口;

 

接口和抽象類技術對比

01.抽象類中能夠有普通方法,接口中不能
02.抽象類能夠有構造,接口不能
03.抽象類中能夠有普通字段,而接口中不行
04.抽象類不能實現多繼承,接口能夠
05.符合is a關係的選用抽象類,符合has a關係的選用接口
06.接口比抽象類抽象程度更高

 

----一個簡單的示例

public abstract class Door { public abstract void oper(); public abstract void close(); }
public interface IDoorbell { public void Bell(); }
public interface ILock { public void Lock(); }
public class FDDoor extends Door implements IDoorbell,ILock{ @Override public void oper() { System.out.println("打開房門"); } @Override public void close() { System.out.println("關閉房門"); } @Override public void Lock() { System.out.println("按下房門門鈴"); } @Override public void Bell() { System.out.println("鎖上房屋門鎖"); } }

測試類--

public class MyMain { public static void main(String[] args) { FDDoor door=new FDDoor(); door.oper(); door.Lock(); door.close(); door.Bell(); } }
相關文章
相關標籤/搜索