最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java  interface 接口的使用好處分析

 更新時(shí)間:2019年11月26日 11:28:14   作者:傾聽歲月  
這篇文章主要介紹了java interface 接口的使用好處,結(jié)合實(shí)例形式分析了java interface接口的功能、基本使用方法及多態(tài)性的使用優(yōu)點(diǎn),需要的朋友可以參考下

本文實(shí)例講述了java  interface 接口的使用優(yōu)點(diǎn)。分享給大家供大家參考,具體如下:

接口interface 的作用是什么?

假設(shè)在以前我們開發(fā)了某個(gè)業(yè)務(wù)的實(shí)現(xiàn)類Demo1,現(xiàn)在根據(jù)需求我們需要重新設(shè)計(jì)該業(yè)務(wù)的實(shí)現(xiàn)類Demo2且不能影響其它業(yè)務(wù)的運(yùn)行。

這時(shí)候就需要一個(gè)標(biāo)準(zhǔn),一個(gè)針對(duì)該業(yè)務(wù)實(shí)現(xiàn)的一個(gè)標(biāo)準(zhǔn)接口(standard interface)。而所有實(shí)現(xiàn)該接口(interface)的類都需要去實(shí)現(xiàn)該接口的方法。通過java向上轉(zhuǎn)型實(shí)現(xiàn)針對(duì)不同的業(yè)務(wù)有不同類的實(shí)現(xiàn)。

注釋:

1、interface 只有方法名和返回值,沒有方法體,都是抽象方法。切不能直接實(shí)例化(通過他的實(shí)現(xiàn)類向上轉(zhuǎn)型獲得該接口的實(shí)現(xiàn))。

Test.java

package Test;
public interface Test
{
  //定義了一個(gè)接口方法
  public String getTestText();
}

Test1.java

package Test;
public class Test1 implements Test
{
  @Override
  public String getTestText()
  {
    return "this class name is test1"; 
  }
}

Test2.java

package Test;
public class Test2 implements Test
{
  @Override
  public String getTestText()
  {
    return "this class name test2";
  }
}

Index.java

import Test.Test;
public class Index
{
  public static void main(String[] args)
    throws Exception
  {
    Test test1 = testIndex("Test.Test1");
    System.out.println(test1.getTestText());
    Test test2 = testIndex("Test.Test2");
    System.out.println(test2.getTestText());
  }
  public static Test testIndex(String classPath)
  {
    Test test = (Test)Class.forName(classPath).newInstance();
    return test;
  }
}

至此,你看出這樣用的好處了嗎?Test1和Test2都實(shí)現(xiàn)了接口Test 如果以后要更改Test的實(shí)現(xiàn)或者是針對(duì)不同業(yè)務(wù)有不同的Test實(shí)現(xiàn),我們都可以動(dòng)態(tài)的載入針對(duì)Test不同的實(shí)現(xiàn)類。

接口與接口之間是可以繼承的

Demo1.java

package Demo;
public interface Demo1
{
  public String getName();
}

Demo2.java

package Demo;
public interface Demo2 extends Demo1
{
  public String getAge();
}

Demo3.java 繼承Demo2 需要實(shí)現(xiàn)Demo1和Demo2中的接口方法

package Demo;
public class Demo3
{
  @Override
  public String getName()
  {
    return "my name is Mr.tan";
  }
  @Override
  public String getAge()
  {
    return "my age is 22";
  }
}

其實(shí)本質(zhì)就是一個(gè)類的多鐘表現(xiàn)形態(tài)(多態(tài))。針對(duì)不同的業(yè)務(wù),相同的接口或者是類通過不同的實(shí)現(xiàn)類向上轉(zhuǎn)型表現(xiàn)出不同的形態(tài)。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java常用類之比較器的使用詳解

    Java常用類之比較器的使用詳解

    這篇文章主要為大家詳細(xì)介紹了Java中比較器的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2022-11-11
  • Mybatis配置解析看這一篇就夠了

    Mybatis配置解析看這一篇就夠了

    這篇文章主要介紹了詳解Mybatis是如何解析配置文件的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Maven項(xiàng)目打包成可執(zhí)行Jar文件步驟解析

    Maven項(xiàng)目打包成可執(zhí)行Jar文件步驟解析

    這篇文章主要介紹了Maven項(xiàng)目如何打包成可執(zhí)行Jar文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Spring Boot集成Redis實(shí)現(xiàn)緩存機(jī)制(從零開始學(xué)Spring Boot)

    Spring Boot集成Redis實(shí)現(xiàn)緩存機(jī)制(從零開始學(xué)Spring Boot)

    這篇文章主要介紹了Spring Boot集成Redis實(shí)現(xiàn)緩存機(jī)制(從零開始學(xué)Spring Boot),需要的朋友可以參考下
    2017-04-04
  • 解決java.lang.IllegalArgumentException異常問題

    解決java.lang.IllegalArgumentException異常問題

    這篇文章主要介紹了解決java.lang.IllegalArgumentException異常問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 解析Java按值傳遞還是按引用傳遞

    解析Java按值傳遞還是按引用傳遞

    這篇文章主要介紹了解析Java按值傳遞還是按引用傳遞,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 求1000階乘的結(jié)果末尾有多少個(gè)0

    求1000階乘的結(jié)果末尾有多少個(gè)0

    題目是:求1000!的結(jié)果末尾有多少個(gè)0,解題思路:兩個(gè)素?cái)?shù)2、5,相乘即可得到10,我們可以認(rèn)為,有多少組2、5,結(jié)尾就有多少個(gè)0,下面是代碼,需要的朋友可以參考下
    2014-02-02
  • 詳解SpringCloud新一代網(wǎng)關(guān)Gateway

    詳解SpringCloud新一代網(wǎng)關(guān)Gateway

    SpringCloud Gateway是Spring Cloud的一個(gè)全新項(xiàng)目,Spring 5.0+ Spring Boot 2.0和Project Reactor等技術(shù)開發(fā)的網(wǎng)關(guān),它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的API路由管理方式
    2021-06-06
  • Java實(shí)現(xiàn)Treap樹的示例代碼

    Java實(shí)現(xiàn)Treap樹的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)Treap樹的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java常見的轉(zhuǎn)義字符舉例詳解

    Java常見的轉(zhuǎn)義字符舉例詳解

    在java字符常量中,反斜杠(\)是一個(gè)特殊的字符,被稱為轉(zhuǎn)義字符,它的作用是用來轉(zhuǎn)義后面一個(gè)字符,這篇文章主要給大吉介紹了關(guān)于Java常見轉(zhuǎn)義字符的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02

最新評(píng)論

安岳县| 山西省| 郸城县| 阳曲县| 林口县| 加查县| 诸城市| 郴州市| 容城县| 溧阳市| 报价| 高清| 贵南县| 长宁县| 蓬安县| 扬中市| 贡嘎县| 泉州市| 沈丘县| 景宁| 冷水江市| 开封县| 雷山县| 富顺县| 汝阳县| 阿合奇县| 钟祥市| 舞钢市| 密山市| 莱芜市| 平果县| 巴塘县| 乐山市| 丰都县| 乐昌市| 阳原县| 盘山县| 团风县| 上思县| 广东省| 安塞县|