抽象類是乙個特殊的類。
abstract:修飾符,抽象的意思。
修飾類:抽象類。
修飾方法:抽象方法。
特點:抽象類不能例項化
抽象方法要在抽象類中
抽象類必然有子類,子類想要建立物件,子類將繼承的所有抽象方法全部覆蓋。
如果只覆蓋了部分抽象方法,那麼子類依然是抽象類。
成員:抽象方法
成員變數,成員方法,構造方法
抽象類中可以沒有抽象方法,目的該類不能例項化。
注意:abstract不能和final和private一起使用。
abstract不能和static修飾的抽象方法一起使用。
什麼時候使用抽象類?
當不想要類能例項化時,可以定義為抽象類。
所有子類都需要將繼承的方法進行覆蓋,那麼父類該方法應為抽象方法,那麼該類是抽象類。
指乙個物件具備多種形態。
例如 :生活中水: 固態 液態 氣態
class 動物{}
class 狗 extends 動物{}
建立物件時: 狗 d = new 狗(); //本態
動物 d = new 狗(); //多型
前提條件:必須有繼承或者是實現。
表現形式:父型別引用指向自己的子類物件
好處:提高了**的擴充套件性
弊端:不能訪問子類特有的成員。
在方法中:引數中可以接收animal型別,與可以接收animal的子類
多型的型別轉換:
向上轉型(型別提公升): 父型別引用指向子型別(小———> 大) animal a = new cat();
向下轉型(強制型別轉換):將父型別引用轉成子型別 (想要訪問子類特有的方法時)(大———> 小)
注意:型別轉換時,改變的是引用稱呼,一會是父型別,一會是子型別
而物件本身由始至終都沒有改變。
animal a = new animal();
cat c = (cat)a;
編譯通過,執行出現classcastexception
異常。
instanceof:比較運算子,結果為boolean
比較是否是指定的型別
多型中成員的特點:
多型形式建立的物件:
1. 無論是靜態成員還是非靜態成員,編譯器時期都看父類
2.對於成員方法,編譯通過,執行的是子類的結果
3.對於靜態方法,靜態變數,變數,編譯通過執行的都是父類結果
Java抽象類與抽象方法
一 定義乙個抽象類animal public abstract class animal這個類裡面現在什麼都沒有。那麼它裡面可以有什麼?我們試著給它加上成員變數,成員方法等,看看行不行。public abstract class animal int quality public void eat ...
Java 抽象類與抽象方法
抽象方法 在類中沒有方法體的方法,就是抽象方法。抽象類 含有抽象方法的類就叫抽象類。抽象類中的抽象方法必須被實現!如果乙個子類沒有實現父類中的抽象方法,則子類也成為了乙個抽象類!抽象類中的普通方法,可以不必實現。1用abstract關鍵字來修飾乙個類時,這個類叫做抽象類 用abstract來修飾乙個...
Java(抽象類與抽象方法)
關鍵字abstract修飾的類稱為抽象類,抽象類是一種沒有完全實現的類,不能用它例項化任何物件,它的主要用途是描述一些概念性的內容,然後在子類中具體的實現這些概念,這樣可以提高開發效率,統一使用者介面,所以抽象類更多的是作為其他類的父類。抽象類中可以含有抽象方法,抽象方法是用abstract修飾的方...