Java基礎創作日記 Day05
時間:2021年2月7日下午 陰
前天的總結少了點東西,今天補充上
現在是2021年2月8日 晚上,摸了一天魚,今晚補完
文章目錄
- 抽象方法+抽象類+介面
- 抽象方法
- 抽象類
- 介面
- 實作介面的方法
- 介面作用和理解
- 多型
- 什么是多型?
- 多型的實作
- 物件型別轉換的注意事項
- instanceof
抽象方法+抽象類+介面
抽象方法
當我們創建一個父類,父類的一些方法需要后代進行重寫,此時父輩不需要寫入任何代碼,此時我們就可以把這些方法不寫方法體,設定為抽象方法,然后用后代來重寫這個方法
語法:
abstract void 方法名();
抽象類
含有抽象方法的類必須要用abstract修飾,用abstract修飾的類叫做抽象類,抽象類可以不含有抽象方法
語法:abstract class 類名{}
如:

抽象類不能被實體化,他需要被繼承,然后由后代來實作,后代可以實體化
后代必須實作抽象類中的抽象方法
介面
當一個抽象類中的所有方法都是抽象的則可以把他定義成一個介面
介面中可以不含有抽象方法
需要用interface關鍵字
語法:interface 類名{}
實作介面的方法
和后代實作抽象方法不同的是,實作介面需要用implements關鍵字,而不是extends繼承
語法:class 類名 implements 介面名{}
如:
同樣,實作介面的類必須實作介面中的所有抽象方法
介面中我們設定的變數,會自動默認使用public static final來修飾
用抽象類實作介面的時候,可以不實作介面中的所有抽象方法
一個類可以同時實作多個介面
如:

中間用逗號隔開
而且,介面中的方法和變數我們不用加abstract修飾符,因為系統會自動默認其中的方法用abstract修飾,變數默認使用public abstract來修飾
介面作用和理解
可以類比我們現實中的例子
如USB介面:
介面可以用來實作一個大種類的各種細化的功能,可以類比于電腦上的USB介面,我們先來分析這種的USB介面的作業原理,首先提供一個共用的介面,里面提供固定的線,來使開發商根據對應的線來實作和介面兼容的產品,比如滑鼠、移動磁盤,這兩個都可以正確的兼容電腦上的USB介面,他們可以為電腦提供不同的功能,
類比于代碼中的介面:
我們代碼介面中的幾個抽象方法就類似于USB介面中的線,這就是創建介面,我們可以根據這些抽象方法來實作各種功能,來提供給其他的物件使用,這就是實作介面,
介面也可繼承其他的介面
多型
什么是多型?
代碼中,在同一個方法中,由于傳入引數型別的不同而導致執行效果各異的現象就是多型
在代碼中的展現方式:
首先,在Java中為了實作多型,允許一個父型別別的變數來參考一個子型別別的物件,如:

然后,我們定義一些子類來實作父類的一些方法,然后在主函式中創建一個接受父類物件引數的方法,方法中是要實作的父類方法,然后傳入引數,代碼會根據傳入引數參考物件的不同來進行不同的實作方法
多型的實作
例:

我們先寫一個介面,來寫入抽象方法,然后寫兩個子類來對抽象方法進行不同的實作,然后在main中用父型別別來引入兩個子類的物件,然后創建一個靜態函式接收參考子類物件的父型別別變數,其中呼叫父類的抽象方法,然后我們傳入引數,可以看到,傳入不同物件型別的變數,會變現出對應動作
物件型別轉換的注意事項
因為在多型中涉及到將子類物件當做父型別別使用的情況,所有會有一些注意事項
- 將子類物件當做父類使用時不需要任何顯式的宣告,直接
父類類名 變數名=new 子類的建構式 - 參考子類的父型別別變數可以呼叫父類中的方法,但是,子類中的方法他不能呼叫
instanceof
作用:判斷一個物件是否是某個類(或介面)的實體或者其子類的實體
用法:
物件(或者物件參考變數) instanceof 類(或介面)
如:

無了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258409.html
標籤:java
