十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
接口:
豐順網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
官方的含義是---->java接口是一系列方法的聲明,是一些方法特征的集合
疑問:
那為什么不用抽象類呢?把他們共有的方法集合起來放在一個抽象類里面,同樣可以調(diào)用哇,但是反過來想一想如果這些方法,不是同一個類,就比如飛這個方法,飛機有飛這個方法,蚊子有飛這個方法,如果讓他連同時繼承擁有飛這個抽象類里面,是不符合單一職責(zé)原則的,所以我們可以提供一個飛的接口,飛機,蚊子來實現(xiàn)這個接口,那么飛機和蚊子就擁有飛的能力啦,這是我對接口的理解
因為最近在學(xué)習(xí)java 面向?qū)ο笾械慕涌?,就畫了思維導(dǎo)圖:
這是我對接口知識的基本總結(jié)
舉一個案例希望大家能理解接口!
現(xiàn)在有一個需求,有一個門door類,有一個防盜門AntiTheDoor類,有一個鐵門IronDoor類,因為防盜門和鐵門都有門的屬性,所以二者
繼承門door類
他們都有一個功能,就是上鎖與開鎖,還有一個防盜門獨有的功能,就是貓眼CatEye功能,貓眼功能是防盜門獨有的方法,所以應(yīng)當(dāng)把
貓眼看成一個接口,防盜門可以實現(xiàn)它,這樣我們用代碼怎么來詮釋呢(定義與實現(xiàn))
父類door
public abstract class Door { /** * 開門 */ public abstract void open(); /** * 關(guān)門 */ public abstract void close(); }
接口:只寫應(yīng)該具有的功能
public interface CatEye { /** * 在使用接口的所有類中,需要實現(xiàn)接口中所有的方法 * 他們有這個功能,但是具體的實現(xiàn)放是不一樣的,需要實現(xiàn)他的類在里面重新定義它新的生命,就比如,普通的防盜門里的貓眼就是簡單的看 * 但是,還有一些貓眼的看有掃描的功能,不同的需求放在不同的類里面來具體的實現(xiàn) */ void look(); }
public interface Lock { /** * 上鎖 */ void upLock(); void downLock(); }
防盜門是門door的子類,繼承父類開門關(guān)門的方法,同時擁有上鎖,與貓眼的功能
public class AntiTheDoor extends Door implements Lock,CatEye{ @Override public void look() { System.out.println("防盜門的貓眼,伸頭瞪眼"); } @Override public void upLock() { // TODO 自動生成的方法存根 System.out.println("防盜門開鎖:左轉(zhuǎn)三圈"); } @Override public void downLock() { // TODO 自動生成的方法存根 System.out.println("防盜門的關(guān)鎖,右轉(zhuǎn)三圈"); } @Override public void open() { // TODO 自動生成的方法存根 System.out.println("防盜門的開門:用頭頂"); } @Override public void close() { // TODO 自動生成的方法存根 System.out.println("防盜門的關(guān)門:用腳蹬"); } }
相比于防盜門,鐵門只有上鎖的功能
public class IronDoor extends Door implements Lock{ @Override public void upLock() { System.out.println("鐵門的開鎖,右轉(zhuǎn)三圈"); } @Override public void downLock() { System.out.println("鐵門的上鎖,左轉(zhuǎn)三圈"); } @Override public void open() { System.out.println("鐵門的開門用腳蹬"); } @Override public void close() { System.out.println("鐵門的關(guān)門方式,用頭頂"); } }
測試類:
public class test { public static void main(String[] args) { AntiTheDoor atd = new AntiTheDoor(); atd.upLock(); atd.open(); atd.close(); atd.downLock(); } }
運行結(jié)果:
防盜門開鎖:左轉(zhuǎn)三圈
防盜門的開門:用頭頂
防盜門的關(guān)門:用腳蹬
防盜門的關(guān)鎖,右轉(zhuǎn)三圈
一個接口只有方法的特征沒有方法的實現(xiàn),因此這些方法可以在不同的地方被不同的類實現(xiàn),而這些實現(xiàn)可以有具體不同的能力.
以上所述是小編給大家介紹的java接口基礎(chǔ)知識詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!