摘要:接口無法被實例化,但是可以被實現,一個實現接口的類,必須實現接口內所描述的所有方法,否則必須聲明為抽象類。接口與類之間的關系類與類之間繼承關系,只能是單繼承,可以多層繼承。并且還繼承一個類的同時實現多個接口。
JAVA接口 1.什么是接口
接口在java編程語言中是一種抽象的類型,是抽象方法的集合,接口主要用interface來聲明,一個類通過繼承接口的方式,從而來繼承接口的抽象方法。接口不是類,它只包含類要實現的方法。如果實現某個接口的類是抽象類,那么這個類要定義接口中所有的方法。接口無法被實例化,但是可以被實現,一個實現接口的類,必須實現接口內所描述的所有方法,否則必須聲明為抽象類。
2.接口與類之間的關系1.類與類之間:繼承關系,只能是單繼承,可以多層繼承。
2.類與接口之間的關系:實現關系,可以單實現,也可以多實現。并且還繼承一個類的
同時實現多個接口。
3.接口與接口之間的關系:繼承關系,可以單繼承,也可以多繼承。
1.接口不可以被實例化
2.實現類必須實現接口的所有方法
3.實現類可以實現多個接口
4.接口中的變量都是靜態常量
1.因為繼承的實現原理決定了他只能被單繼承,但是可以多重繼承,但是如果出現某些內容在多個父類當中,這樣修改起來相當麻煩。使用接口,可以做到立刻實現,立刻使用。不需要實現時,直接移除此接口就可以了。非常的方便。
2.父類引用指向子類對象
3.更容易實現搭建程序的框架
4.更容易實現切換
相同點:
1.都是代表系統的抽象層
2.都不能被實例化
3.都能包含抽象方法
不同點:
1.在抽象類中可以為部分方法提供默認實現,而接口中只能包含抽象方法,抽象類便于復用,接口便于代碼維護
2.一個類只能繼承一個直接的父類,但可以實現多個接口
實例1
public class Security extends Door implements CatEye, Fireproofing { @Override public void openCat() { System.out.println("打開貓眼"); } @Override public void closeCat() { // TODO Auto-generated method stub System.out.println("關閉貓眼"); } @Override public void fireproofing() { // TODO Auto-generated method stub } @Override public void noFireproofing() { // TODO Auto-generated method stub } }
實例2
/** * 計算機類 * * @author Administrator * */ public class CP { private Cpu cpu; public Cpu getCpu() { return cpu; } public void setCpu(Cpu cpu) { this.cpu = cpu; } public EMS getEms() { return ems; } public void setEms(EMS ems) { this.ems = ems; } public HardDisk getHardDisk() { return hardDisk; } public void setHardDisk(HardDisk hardDisk) { this.hardDisk = hardDisk; } private EMS ems; private HardDisk hardDisk; public CP(Cpu cpu, EMS ems, HardDisk hardDisk) { super(); this.cpu = cpu; this.ems = ems; this.hardDisk = hardDisk; } public CP() { super(); // TODO Auto-generated constructor stub } public void show() { System.out.println("電腦的cpu是:" + getCpu().getCpuBrand() + "主頻是:" + getCpu().getFrequency()); System.out.println("硬盤容量是:" + getHardDisk().getHardDisk()); System.out.println("內存的容量是:" + getEms().getEms()); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72844.html
摘要:注意當多個父接口中存在相同的默認方法時,子類中以就近原則繼承。定義靜態默認方法這是版簡易計算器接口默認方法使用定義接口并提供默認打印方法定義接口默認方法支持方法形參這是數值運算基本接口。。。 總概 JAVA8 已經發布很久,而且毫無疑問,java8是自java5(2004年發布)之后的最重要的版本。其中包括語言、編譯器、庫、工具和JVM等諸多方面的新特性。 Java8 新特性列表如下:...
摘要:語法中接口可以包含實現方法,需要使用修飾,此類方法稱為默認方法。核心特性接口默認方法就介紹到這里了,后續小樂會繼續講述核心特性。 JAVA8已經發布很久,是自java5(2004年發布)之后Oracle發布的最重要的一個版本。其中包括語言、編譯器、庫、工具和JVM等諸多方面的新特性,對于國內外互聯網公司來說,Java8是以后技術開發的趨勢。這里主要講解在開發中幾個核心的新特性。(主要從...
摘要:首當其沖的便是接口中的每個聲明必須是即便不指定也是,并且不能設置為非,詳細規則可參考可見性部分介紹。函數式接口有著不同的場景,并被認為是對編程語言的一種強大的擴展。抽象類與中的接口有些類似,與中支持默認方法的接口更為相像。 原文鏈接:http://www.javacodegeeks.com/2015/09/how-to-design-classes-and-interfaces.htm...
摘要:雖然目前工作環境仍然以為主,不過目前已是大勢所趨了。標準函數式接口新的包定義旨在使用的廣泛函數式接口。這一改進使得擁有了類似于多繼承的能力。 從Java8發布到現在有好幾年了,而Java9也提上發布日程了(沒記錯的話好像就是這個月2017年7月,也許會再度跳票吧,不過沒關系,穩定大于一切,穩定了再發布也行),現在才開始去真正學習,說來也是慚愧。雖然目前工作環境仍然以Java6為主,不過...
摘要:標識符與關鍵字標識符指類名包括接口枚舉抽象類方法名變量常量名包名等可以自定義的字符組合。如果基本功能在不斷改變,那么就需要使用抽象類。抽象類可以實現接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所結,不管...
Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續版本中引入的改進。 Java教程是希望使用Java編程語言創建應用程序的程序員的實用指南,其中包括數百個完整的工作示例和數十個課程,相關課程組被組織成教程。 覆蓋基礎知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術和安裝Java開發軟件并使用...
閱讀 2816·2019-08-30 15:55
閱讀 2864·2019-08-30 15:53
閱讀 2302·2019-08-26 13:47
閱讀 2563·2019-08-26 13:43
閱讀 3162·2019-08-26 13:33
閱讀 2810·2019-08-26 11:53
閱讀 1803·2019-08-23 18:35
閱讀 806·2019-08-23 17:16