激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中的接口及其應用場景解讀

Java中的接口及其應用場景解讀

2023-05-09 01:02未知服務器之家 Java教程

目錄 一、接口的特點 二、定義接口 1.interface關鍵字 2.implements關鍵字 三、應用場景 1.接口表示規范 2.接口表示能力/行為 四、接口和類之間的關系 五、接口的命名規范 總結 一、接口的特點 1.如果一個抽象類中的所有方法都是抽象

目錄
  • 一、接口的特點
  • 二、定義接口
    • 1.interface關鍵字
    • 2.implements關鍵字
  • 三、應用場景
    • 1.接口表示規范
    • 2.接口表示能力/行為
  • 四、接口和類之間的關系
    • 五、接口的命名規范
      • 總結

        一、接口的特點

        1.如果一個抽象類中的所有方法都是抽象的,則可以將這個類定義為Java中的另一種形式——接口。接口是一種特殊的抽象類,接口中只有全局常量和抽象方法,是一種更純粹的抽象概念。

        2.在JDK8中,對接口進行了重新定義,接口中除了有抽象方法外,還可以有默認方法和靜態方法;默認方法可以被繼承和覆寫,靜態方法不能被繼承和覆寫。

        3.一般來說,接口的使用表示兩種場景:

        • ①接口表示具備某種能力/行為,子類實現接口是并不是is a關系,而是具備這種能力或行為
        • ②接口表示一種規范或者標準。

        4.在接口中,定義抽象方法時 public abstract關鍵字可以省略,定義全局常量時 static final可以省略。

        5.接口的子類可以實現多個父接口,接口也不能直接實例化對象,需要通過子類(普通類)向上轉型。

        6.接口和接口之間也可以是繼承關系,但是接口絕對不能繼承一個類。

        二、定義接口

        1.interface關鍵字

        與定義類不同的是,在定義接口的時候,不再使用class關鍵字,而是使用interface關鍵字來聲明。

        語法格式:修飾符 interface 接口名 { }

        創建一個USB接口,里面有兩個抽象方法

        代碼如下:

        public interface USB{
        //表示插入
        	public abstract void plugIn();
        //表示工作
        	public abstract void work();
        }

        2.implements關鍵字

        子類使用implements關鍵字來實現接口,必須覆寫接口中所有的抽象方法

        代碼如下:

        public class KeyBoard implements USB {
        	@Override
            public void plugIn() {
                System.out.println("安裝鍵盤驅動");
            }
            @Override
            public void work() {
                System.out.println("鍵盤正常工作");
            }
        }

        三、應用場景

        1.接口表示規范

        USB接口表示一種規范,鼠標鍵盤耳機等等這些外設都屬于USB接口的子類,我們在日常生活中使用電腦的時候,我們并不關心到底哪個具體設備插入了我們的電腦,只要這個設備滿足了USB接口,就都能被電腦識別并使用。

        就是說,一個接口,可以接受無數種設備,只要這個設備滿足USB接口,都可以插入電腦并被電腦識別。

        兼容所有的USB子類對象。

        public interface USB{
        //表示插入
        	public abstract void plugIn();
        //表示工作
        	public abstract void work();
        }
        public class Mouse implements USB{
            @Override
            public void plugIn() {
                System.out.println("安裝鼠標驅動");
            }
            @Override
            public void work() {
                System.out.println("鼠標正常工作");
            }
        }
        public class KeyBoard implements USB {
        	@Override
            public void plugIn() {
                System.out.println("安裝鍵盤驅動");
            }
            @Override
            public void work() {
                System.out.println("鍵盤正常工作");
            }
        }
        public class Camera implements USB{
            @Override
            public void plugIn() {
                System.out.println("安裝相機驅動中");
            }
            @Override
            public void work() {
                System.out.println("相機開始正常工作");
            }
        }
        //電腦這個類不是USB接口的子類,他是USB規范的使用者
        public class Computer {
            public static void main(String[] args) {
                Computer computer = new Computer();
                Mouse mouse = new Mouse();
                Keyboard keyboard = new Keyboard();
                Camera camera = new Camera();
                computer.fun(mouse);
                computer.fun(keyboard);
                computer.fun(camera);
            }
            /**
            *為什么此時fun方法的參數是USB usb呢?如果我們寫成fun(Mouse mouse),那么這個fun只能識別鼠標,其他的根本識別不了,我們得寫好多個方法去實現。
            *我們這里用他們共同的接口當做參數,這樣不管傳進來的是什么設備,只要你實現了USB這個接口,那你就可以被識別
            *假設我們現在多了一個子類Earphone(耳機)類,實現了USB接口,那我們的fun方法里一行多的代碼都不用寫,直接實例化對象,將引用名傳進去就行。
            */
            public void fun(USB usb) {
                usb.plugIn();
                usb.work();
            }
        }

        2.接口表示能力/行為

        接口允許多實現,一個類可以具備多個能力,同時實現多個父接口,若實現多個父接口,子類(普通類),必須覆寫所有的抽象方法。

        代碼如下:

        //游泳接口,表示具備游泳這個行為
        public interface ISwim {
        ? ? //可以省略public abstrac
        //public abstract void swim();
        ? ? void swim();
        }
        //具備跑這個行為
        public interface IRun {
        //可以省略public abstrac
        ? ? void run();
        //public abstract void run();
        }
        //表示能飛
        public interface IFly {
        //public abstract void fly();
        //可以省略public abstrac
        ? ? void fly();
        }
        //只具備跑的行為
        public class Rabbit implements IRun{
        ? ? @Override
        ? ? public void run() {
        ? ? ? ? System.out.println("兔子在跑~");
        ? ? }
        }
        //具備跑和游泳的能力
        public class Dog implements IRun,ISwim{
        ? ? @Override
        ? ? public void run() {
        ? ? ? ? System.out.println("狗子在跑~");
        ? ? }
        ? ? @Override
        ? ? public void swim() {
        ? ? ? ? System.out.println("狗子在游泳~");
        ? ? }
        }
        //三種能力都具備
        public class Duck implements IRun,ISwim,IFly{
        ? ? @Override
        ? ? public void fly() {
        ? ? ? ? System.out.println("鴨子在飛~");
        ? ? }
        ? ? @Override
        ? ? public void run() {
        ? ? ? ? System.out.println("鴨子在跑~");
        ? ? }
        ? ? @Override
        ? ? public void swim() {
        ? ? ? ? System.out.println("鴨子在游泳~");
        ? ? }
        }
        //定義一個測試類進行測試
        public class Test {
        ? ? public static void main(String[] args) {
        ? ? ? ? IRun run = new Rabbit();
        ? ? ? ? IRun run1 = new Dog();
        ? ? ? ? ISwim swim = new Dog();
        ? ? ? ? IFly fly = new Duck();
        ? ? ? ? run.run();
        ? ? ? ? run1.run();
        ? ? ? ? swim.swim();
        ? ? ? ? fly.fly();
        ? ? }
        }

        運行結果如下:

        Java中的接口及其應用場景解讀

        五、接口的命名規范

        為了區分接口和類,命名使用 I 開頭,IRun,ISwim等等,子類實現一個接口時,命名以相應的接口開頭,以impl結尾。

        例如:如果是IRun的子類,Runimpl(不是強制要求,但盡量做到)。

        如果子類實現多個父接口,不需要使用此規范來命名

        總結

        以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

        原文地址:https://blog.csdn.net/weixin_50262394/article/details/124631629

        延伸 · 閱讀

        精彩推薦
        主站蜘蛛池模板: 亚洲精品午夜视频 | 视频一区二区不卡 | 日韩av电影在线免费观看 | 亚洲va久久久噜噜噜久久男同 | 黄污网站在线观看 | 国产精品久久国产精品 | 欧美一级爱爱 | 成人在线视频一区 | www.9191.com | av在线播放免费 | 中国洗澡偷拍在线播放 | 国产免费黄色 | 欧洲黄视频 | 国产免费观看一区二区三区 | 免费a级网站 | 国内精品久久久久久久影视红豆 | av成人在线免费观看 | 新久草视频 | 成年人黄色免费网站 | 欧美激情精品久久久久久黑人 | 美国黄色小视频 | 99国产精品国产免费观看 | 日本特级a一片免费观看 | 九九精品在线观看视频 | 黄色成人av在线 | 欧美一级淫片免费视频1 | 免费看性xxx高清视频自由 | 在线免费观看日韩视频 | 久久国产在线观看 | 精品一区在线视频 | 娇妻被各种姿势c到高潮小说 | 免费黄色小视频网站 | 国产午夜亚洲精品 | 九九色网站 | 欧美电影在线观看 | 国产精品亚洲一区二区三区久久 | 色视频在线播放 | 91av视频大全| 播色网 | 国产精品色综合 | 欧美另类在线视频 |