抽象類
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不能修飾構造器;