Java之面向對象

知識點總結:

一、封裝:

            私有屬性,把成員變量的訪問修飾符聲明爲private;
            公開方法對屬性賦值和取值,聲明getXXX() 和 setXXX()方法;

二、繼承:

            在java中是單繼承關係,但是可以實現多重繼承;
            在實例化子類時,先執行父類的構造方法,再執行子類的構造方法;
            子類可以繼承父類非私有的屬性和方法,不能繼承構造方法;
            當父類的方法無法滿足子類需要時,子類可以重寫父類方法;
            在子類中,使用super關鍵字表示父類對象,可以用在非靜態方法中;
            super()表示父類構造器,只能用在子類的構造器中,並且是在構造器的第一行;
            this代表當前子類對象,可以使用在子類的非靜態方法中;
            this()表示子類的構造器,只能用在子類的構造器中,並且是在構造器的第一行;
            不能和super()同時出現;
            當類使用final關鍵字修飾時,該類不能被繼承;
    **重寫規則:**

            重寫方法的聲明部分(返回值類型、方法名、參數列表)要和父類中的方法保持一致;
            重寫方法的訪問權限要大於等於父類的方法;
            重寫方法可以拋出任意的非強制性異常,如果父類方法中拋出了異常,子類中的重寫方法拋出異常的範圍要小於等於父類;
            當父類的方法使用final關鍵字修飾時,可以被繼承,但不能被重寫;
            當父類的方法使用static修飾時,可以被繼承,不能被重寫,但是可以在子類中重寫聲明;
            (排除final和static關鍵字的情況下)
            如果在同包下,子類可以重寫父類的非私有的方法;
            不在同包下,子類只能重寫父類的public和protected修飾的方法;
            不能被繼承的方法,不能重寫,例如:構造方法;

三、多態:

            繼承;
            方法重寫;
            父類引用指向子類對象(向上轉型);
            父類引用調用子類重寫的方法,指向的是重寫方法;

四、抽象類:

            使用abstract關鍵字修飾的類,即爲抽象類;
            抽象類中可以聲明普通類的所有成員之外,還可以聲明抽象方法;
            含有抽象方法的類一定是抽象類,抽象類中不一定有抽象方法;
            抽象類不能被實例化對象,只能被繼承,使用多態的方式獲取對象;
            也可以使用匿名內部類的方式創建對象;
            如果一個類繼承了抽象類,必須要重寫抽象類中的所有抽象方法;
            抽象方法中可以聲明構造方法;

五、接口:

            使用interface關鍵字修飾;
            接口是可以多繼承的;
            接口可以被類實現,一個類可以實現多個接口;
            接口是一個完全抽象的抽象類,接口中的方法都是抽象方法(JDK1.7↓);
            接口中不能有構造方法;
            接口中不能聲明變量,只能聲明常量,默認的聲明格式爲:public static final int i = 1;
            接口的聲明和接口中方法的聲明默認都使用了abstract關鍵字;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章