抽象類&接口

抽象類
abstract修飾的類就是抽象類,abstract修飾的方法就是抽象方法,抽象方法是沒有方法體的;
抽象類中可以包含抽象方法,抽象類不能實例化,必須由子類繼承,並實現抽象方法,才能使用;
抽象類與普通類的不同之處:一、抽象類有抽象方法,普通類沒有;二、抽象類的構造器是供子類調用的,不能用於創建對象,普通類可以通過構造器實例化;

接口

public interface OnLoadDateListener {
    int a = 7;//被隱式地指定爲public static final
    void changeNumber(int b);//被隱式地指定爲public abstract方法
    void setTextviewString(String textviewString);
    void setButtonString(String buttonString);
}

接口中成員變量是可以直接 OnLoadDateListener.a來使用,且不能修改a的值,因此成員變量a是public static final;
接口中只能是抽象方法,實現接口的類必須實現該接口中所有的抽象方法,否則必須將該類聲明爲abstract類,不然會報錯;

abstract
抽象類是一定要被繼承的,抽象方法是一定要被子類實現或重寫,而final修飾的類不能被繼承,final修飾的方法也不能被重寫,因此abstract和final不能同時使用;
抽象方法必須是子類實現,因爲不能是private修飾的,因此abstract和private不同同時使用;
抽象方法沒有方法體,具體實現是由子類決定,若直接由static修飾,可以直接通過父類名.方法名調用,但沒有方法體,因此abstract和static不能同時使用;
abstract不能修飾構造器;

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