1. 程式人生 > >方法重寫概述及其應用 學習筆記

方法重寫概述及其應用 學習筆記

pub 父類靜態 static ID 詳細 string nds CA 主體

class Demo7_Phone { public static void main(String[] args) { Ios8 i = new Ios8(); i.siri(); i.call(); } } /* B:方法重寫的應用: * 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法。這樣,即沿襲了父類的功能,又定義了子類特有的內容。 ios7系統 siri speak English ios8系統 siri 說中文 */ class Ios7 { public void call() { System.out.println("打電話"); } public void siri() { System.out.println("speak English"); } } class Ios8 extends Ios7 { public void siri() { System.out.println("說中文"); super.siri(); } }

主方法

class Demo8_繼承 {
    public static void main(String[] args) {
        DayOne d = new DayOne();
        d.泡妞();
        d.print();
    }
}
/*
    * a:父類中私有方法不能被重寫
        * 因為父類私有方法子類根本就無法繼承
    * b:子類重寫父類方法時,訪問權限不能更低
        * 最好就一致
    * c:父類靜態方法,子類也必須通過靜態方法進行重寫
        * 其實這個算不上方法重寫,但是現象確實如此,至於為什麽算不上方法重寫,多態中我會講解(靜態只能覆蓋靜態)

    * 子類重寫父類方法的時候,最好聲明一模一樣。
*/
class 繼承 {
    public void sing() {
        System.out.println("唱紅歌");
    }

    public void 學習() {
        System.out.println("學習");
    }

    public static void print() {
        System.out.println("Fu print");
    }
}

class DayOne extends 繼承 {
    public void 學習() {
        System.out.println("學習繼承");
    }

    public static void print() {                //靜態只能覆蓋靜態,其實不算重寫,多態時候詳細講解
        System.out.println("Zi print");
    }
}

方法重寫概述及其應用 學習筆記