国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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
364
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 欧美专区在线观看 | 伊人成人222| 国产99精品视频 | 97久久精品人人做人人爽50路 | 精品视频在线播放 | 国产一区二区三区久久 | 色视频免费在线 | 久久国产精品久久喷水 | 精品国产乱码久久久久夜 | 日本精品一区二区三区视频 | av免费观看网站 | 一区二区av在线 | 一区二区精品在线视频 | 成人午夜视频在线观看 | 精品久久久久国产 | 久久国产精品系列 | 天天躁日日躁bbbbb | 欧美一级二级三级 | 天天操人人干 | 成人精品视频免费在线观看 | 黄色激情网站 | 国产精品成人一区二区三区 | 91粉色视频| 黄色一级大片免费 | 伊人99热| 成人免费在线视频 | 成人国产在线视频 | 99久久毛片免费观看 | 欧美电影在线观看 | the蜜臀av入口 | 日本一区二区三区在线视频 | 日韩a视频| 日韩中文视频 | 黄色av网站在线观看 | 国产中文一区 | 久久免费99精品久久久久久 | www.天天操.com| 色吧网站| 亚洲精品国产setv | 91免费国产在线 | 久久久久久国产 |