一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Java接口操作(繼承父類并實現多個接口)

Java接口操作(繼承父類并實現多個接口)

2020-10-07 22:29Valentino112358 JAVA教程

這篇文章主要介紹了Java接口操作(繼承父類并實現多個接口),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

使用接口的時候,需要注意:

1. 接口是沒有靜態代碼塊或者構造方法的。 2. 一個類的直接父類是唯一的,但是一個類可以同時實現多個接口。

格式:

?
1
2
3
public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
  // 覆蓋重寫所有抽象方法
}

3. 如果實現類所實現的多個接口當中,存在重復的抽象方法,那么只需要覆蓋重寫一次即可。

A接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package cn.itcast.day10.demo02;
public interface MyInterfaceA {
 
  // 錯誤寫法!接口不能有靜態代碼塊
//  static {
//
//  }
 
  // 錯誤寫法!接口不能有構造方法
//  public MyInterfaceA() {
//
//  }
 
  public abstract void methodA();
 
  public abstract void methodAbs();
 
  public default void methodDefault() {
    System.out.println("默認方法AAA");
  }
}

B接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package cn.itcast.day10.demo02;
public interface MyInterfaceB {
 
  // 錯誤寫法!接口不能有靜態代碼塊
//  static {
//
//  }
 
  // 錯誤寫法!接口不能有構造方法
//  public MyInterfaceA() {
//
//  }
 
  public abstract void methodB();
 
  public abstract void methodAbs();
 
  public default void methodDefault() {
    System.out.println("默認方法BBB");
  }
}

實現類有多個接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package cn.itcast.day10.demo02;
public class MyInterfaceImpl /*extends Object*/ implements MyInterfaceA, MyInterfaceB {
 
  @Override
  public void methodA() {
    System.out.println("覆蓋重寫了A方法");
  }
 
  @Override
  public void methodB() {
    System.out.println("覆蓋重寫了B方法");
  }
 
  @Override
  public void methodAbs() {
    System.out.println("覆蓋重寫了AB接口都有的抽象方法");
  // A B 都有 覆蓋一次
 
  @Override
  public void methodDefault() {
    System.out.println("對多個接口當中沖突的默認方法進行了覆蓋重寫");
  }
}

只覆蓋重寫了一次。

4. 如果實現類沒有覆蓋重寫所有接口當中的所有抽象方法,那么實現類就必須是一個抽象類。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package cn.itcast.day10.demo02;
public abstract class MyInterfaceAbstract implements MyInterfaceA, MyInterfaceB {
  @Override
  public void methodA() {
 
  }
  // 沒有寫methodB那么實現類是抽象類
  @Override
  public void methodAbs() {
 
  }
 
  @Override
  public void methodDefault() {
 
  }
}

抽象方法methodB沒有重寫覆蓋,那么實現類成為了抽象類。

5. 如果實現類鎖實現的多個接口當中,存在重復的默認方法,那么實現類一定要對沖突的默認方法進行覆蓋重寫(A,B兩個接口中都寫了默認方法,沖突了)。見3.中實現類中覆蓋重寫了A,B中的兩個默認方法

6. 一個類如果直接父類當中的方法,和接口當中的默認方法產生了沖突,優先用父類當中的方法。

Fu類

?
1
2
3
4
5
6
7
package cn.itcast.day10.demo02;
public class Fu {
 
  public void method() {
    System.out.println("父類方法");
  }
}

MyInterface接口

?
1
2
3
4
5
6
7
package cn.itcast.day10.demo02;
public interface MyInterface {
 
  public default void method() {
    System.out.println("接口的默認方法");
  }
}

直接父類當中的方法,和接口當中的默認方法產生了沖突。

Zi子類

?
1
2
3
package cn.itcast.day10.demo02;
public class Zi extends Fu implements MyInterface {
}

調用method方法,看哪個優先

?
1
2
3
4
5
6
7
8
package cn.itcast.day10.demo02;
public class Demo01Interface {
 
  public static void main(String[] args) {
    Zi zi = new Zi();
    zi.method();
  }
}

調用子類對象的method方法,發現使用的是父類中的而不是接口中的方法,父類的優先級比接口優先級更高。

運行結果:

父類方法

Process finished with exit code 0

*/

補充知識:java從對象開始(類,父類與繼承,抽象,接口)

1、對象(類class)

在程序設計時,我們往往會接觸到各種形形色色的現實已存在的對象,這些對象都是需要我們在程序中實例化出來進行業務操作的。不過從數量和復雜上講可以說比我們現實中接觸的事物是有過之而無不及的。

2、父類與繼承

當對象類型繁雜數量繁多時我們就會像生物學上對各種生物進行分門別類,對我們收集到的對象以屬性或者功能又或者其他標準進行分類目。而這些我們最終分出來的各種類目往往在程序中被定義為父類,它是對我們收集到的對象中某些具有相同屬性或者功能又或者其他相似特征的對象集合的總稱。好似一個包含各種文件的文件夾,它本身在程序中并無任何業務操作的意義。

不過注意的是在不同情形不同問題域下,由于分類標準不同,父類也會成為某個父類的子類,所以會形成一種樹狀關系結構,父類在關系結構中與其他對象類并無差別。

分類完成后,現在我們就可以以父類為標準來操作一類對象了。但這時我們對分類好的對象進行實例化會發現那些相同的屬性功能或者其他相似特征都需要在其對象中重復編寫,像這種程度的分類并不是我們想要的。

于是,我們又給父類賦予新的功能,它不再是單純的對對象進行分類了。我們提取出相同的屬性和功能特征放在父類中,讓我們需要操作的對象僅僅關注自己特有的屬性和功能特征,其余的屬性和功能特征都可通過繼承父類來擁有。這樣我們就解決了相同屬性功能重復編寫的問題,并且還能對共有屬性功能進行規范化操作。

3、抽象類

因為父類并無任何業務操作意義,我們就對各種父類進行管理為它們添加abstract關鍵詞,讓它們無法實例化,這樣就避免了實例化對象是不正確的或者某些人分不清具體要操作哪些對象而實例化父類的問題。因為這些父類無法實例化,所以我們把它們稱為——抽象類。通過這樣的設定我們就會在程序中以抽象類為節點形成各種層級關系。

于是我們樹狀關系機構又變成了具有清晰層級關系的樹狀關系結構。

4、小結

父類的提出是進行歸類操作,那么繼承則是去重和規范化的操作,而抽象在此基礎上又進行了關系的分層級和類對象實例化操作的規范。

5、接口

前面說我們對每個對象根據某種特征進行分類了,但有時我們會因為某些特有目的標準不一樣,有時以屬性分類有時以功能分類,但有些對象可能擁有相同屬性不擁有相同功能,有些對象擁有相同功能不擁有相同屬性。這時我們就會把這些在父類中沒有的屬性或者功能但其他對象又有相識功能或屬性單獨抽取出來作為接口來為這些對象服務。

從抽取相同屬性或者功能這點來看,接口實則是對我們已分類好具有清晰層級的樹狀關系結構再次進行一次去重復操作,從而我們的對象從具有清晰層級的樹狀關系結構變成了更加靈活的網狀形結構。

但是在提取父類分類時我們一般會以相同屬性來進行分類,那么那些不同的功能會單獨提取到接口中,接口和抽象類相似的是都不會進行具體方法功能的實現,只是將相同的功能申明好進行規范化操作。具體實現會具體到對象再進行實現。

對象進行去重再提取后那些因為在不同父類中具有相同功能的對象又以另外一種標準分類到某種接口中了。比如某某對象的某某功能和某某對象的某某功能都是來至于某某接口的。從而我們對對象進行操作又多了一種標準,可以通過判斷是否具有某種功能進行篩選對象進其操作。

6、總結

從功能點上看接口與(抽象和父類和繼承)的提出都是對我們程序中的對象進行歸類操作,去除那些重復的代碼。并且在接口和抽象類中都是可以對某些屬性和方法功能進行規范化約束,從而我們在對對象進行業務操作中就更加便捷清晰。對象與對象的關系更加明朗。

以上這篇Java接口操作(繼承父類并實現多個接口)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/Valentino112358/article/details/89035835

延伸 · 閱讀

精彩推薦
  • JAVA教程java使用泛型實現棧結構示例分享

    java使用泛型實現棧結構示例分享

    泛型是Java SE5.0的重要特性,使用泛型編程可以使代碼獲得最大的重用。由于在使用泛型時要指明泛型的具體類型,這樣就避免了類型轉換。本實例將使用泛...

    java技術網3112019-11-12
  • JAVA教程Java套接字(Socket)網絡編程入門

    Java套接字(Socket)網絡編程入門

    這篇文章主要介紹了Java套接字(Socket)網絡編程入門,Socket可以理解為是對TCP/IP協議的抽象,需要的朋友可以參考下 ...

    goldensun2102020-01-09
  • JAVA教程Java實現單詞倒序輸出

    Java實現單詞倒序輸出

    這篇文章主要介紹了Java實現單詞倒序輸出,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下...

    弗蘭克的貓5102020-08-19
  • JAVA教程Java基于正則表達式實現的替換匹配文本功能【經典實例】

    Java基于正則表達式實現的替換匹配文本功能【經典實例】

    這篇文章主要介紹了Java基于正則表達式實現的替換匹配文本功能,結合完整實例形式分析了java字符串正則替換操作技巧,需要的朋友可以參考下...

    FrankYou4492020-09-05
  • JAVA教程Java for循環詳解

    Java for循環詳解

    這篇文章主要介紹了Java for循環方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來...

    東邊的雨田3762019-06-23
  • JAVA教程java中for循環刪除集合陷阱

    java中for循環刪除集合陷阱

    java中在增強for循環為什么不能增刪集合呢?一個循環迭代,跟集合的增刪改沒什么關系。修改集合不是for去做的。for只管循環迭代,你在循環里邊修改集合...

    hebedich4782019-12-17
  • JAVA教程Java web Hibernate如何與數據庫鏈接

    Java web Hibernate如何與數據庫鏈接

    這篇文章主要介紹了Java web Hibernate如何與數據庫鏈接,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以...

    青蔥歲月4492020-07-01
  • JAVA教程10分鐘帶你理解Java中的弱引用

    10分鐘帶你理解Java中的弱引用

    這篇文章將帶大家快速理解Java中弱引用,文章介紹的很詳細,對大家學習Java很有幫助哦,有需要的可以參考借鑒。 ...

    daisy3732020-06-08
主站蜘蛛池模板: 国产激情一区二区三区四区 | 欧美日韩国产超高清免费看片 | 毛片亚洲毛片亚洲毛片 | 国产成人免费观看在线视频 | 草莓茄子丝瓜番茄小蝌蚪 | a v在线男人的天堂观看免费 | 欧美大片一区 | 久久久无码精品亚洲A片猫咪 | 99av涩导航 | 亚洲性夜 | 22sihu国产精品视频影视资讯 | 爽好舒服快想要免费看 | 男人的天堂久久精品激情a 男人的天堂va | 91精品国产9l久久久久 | 国产第一福利影院 | 深夜草莓视频 | 91桃色污 | 亚洲精美视频 | 四虎免费在线观看 | 午夜免费体验30分 | 深夜视频在线播放 | 奇米777四色精品综合影院 | 我与么公激情性完整视频 | 四虎影视色费永久在线观看 | 亚洲网红精品大秀在线观看 | 国产新疆成人a一片在线观看 | 亚洲欧美天堂综合久久 | 校园全肉高h湿一女多男 | 国产一区二区免费不卡在线播放 | 免费岛国| 欧美亚洲韩国 | 欧美一级一级做性视频 | 2019中文字幕在线视频 | 91视频一区 | α级毛片| 狠狠色婷婷狠狠狠亚洲综合 | 91久久国产成人免费观看资源 | 婷婷中文 | freesex1718处xx | 97香蕉超级碰碰碰久久兔费 | 九九久久国产精品大片 |