【Java筆記】面向對象之多態+接口

1、多態
2、接口
1、如果同時出現繼承和實現,則必須先繼承(extends)再實現(implements)

2、類與類之間的關係爲繼承,只能單繼承,但可以多層繼承;類與接口之間的關係爲實現,既可以單實現,也可以多實現;接口與接口之間的關係爲繼承,既可以單繼承,也可以多繼承。

2、接口與抽象類比較:

關於抽象類
JDK 1.8以前,抽象類的方法默認訪問權限爲protected
JDK 1.8時,抽象類的方法默認訪問權限變爲default

關於接口
JDK 1.8以前,接口中的方法必須是public的
JDK 1.8時,接口中的方法可以是public的,也可以是default的
JDK 1.9時,接口中的方法可以是private的

1、1多態的優

點:

增加程序的可擴展性和可維護性,可以使程序有良好的擴展,並可以對所有類的對象進行通用處理。

1、2多態的實現:

(多態存在的三個必要條件)繼承+重寫+父類引用指向子類對象

多態的實現方式
方式一:重寫
方式二:接口
1. 生活中的接口最具代表性的就是插座,例如一個三接頭的插頭都能接在三孔插座中,因爲這個是每個國家都有各自規定的接口規則,有可能到國外就不行,那是因爲國外自己定義的接口類型。
2. java中的接口類似於生活中的接口,就是一些方法特徵的集合,但沒有方法的實現。
方式三:抽象類和抽象方法

2、1接口(interface)的定義

接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

接口並不是類,編寫接口的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。接口則包含類要實現的方法。

除非實現接口的類是抽象類,否則該類要定義接口中的所有方法。

接口無法被實例化,但是可以被實現。一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明爲抽象類。另外,在 Java 中,接口類型可用來聲明一個變量,他們可以成爲一個空指針,或是被綁定在一個以此接口實現的對象。

2、2抽象類和接口的區別(接口是特殊的抽象類)

  1. 抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是接口中的方法不行。
  2. 抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是 public static final 類型的。
  3. 接口中不能含有靜態代碼塊以及靜態方法(用 static 修飾的方法),而抽象類是可以有靜態代碼塊和靜態方法。
  4. 一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

抽象類類體裏只包含靜態最終變量和抽象方法,或者是隻有抽象方法的時候,抽象類可以等同於一個接口。所以接口是特殊的抽象類

2、3接口的實現

這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述

疑難雜題:什麼時候用繼承什麼時候用接口?
Java裏面由於不允許多重繼承,所以如果要實現多個類的功能,則可以通過實現多個接口來實現。
Java接口和Java抽象類代表的就是抽象類型,就是我們需要提出的抽象層的具體表現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章