多型 抽象 藉口

2021-09-02 03:47:42 字數 1630 閱讀 4800

1)多型

1)多型的存在是降低**之間的耦合性

2)如果乙個方法的引數型別是乙個類,在在呼叫這個方法時,傳入的引數可以是該類的物件,也可以是該類子類的物件。

3)如果乙個方法的返回值型別是個類,在呼叫該方法時,返回值可以是該類的物件,也可以是該類子類的物件。

public class animal

}public class dog extends animal

public void run()

} public class test

}

上例中是用父類變數指向子類物件,只能呼叫父類的方法,當子類將父類的方法重寫後,將會呼叫子類的該方法。子類中特有的方法不能被呼叫。

2)抽象方法,抽象類

抽象方法:沒有方法體,用abstract修飾的方法,

抽象類:含有抽象方法的類叫做抽象類,也用abstract修飾。eg:

public abstract class animal
關於抽象類或抽象方法的幾個要點:1)抽象類可以有屬性和非抽象方法;2)抽象類不能被new,即不能被例項化;3)當乙個類繼承乙個抽象類時,必須實現這個抽象類的抽象方法,除非該類也是抽象類;4)抽象類本身的作用就是被繼承;5)抽象方法不能使用private。

3)介面:只能含有抽象方法,不能被例項化。

關於介面,可以對比多型來學習和理解:1)如果乙個方法的引數型別是乙個介面型別,在在呼叫這個方法時,傳入的引數是實現該介面的物件。

2)如果乙個方法的返回值型別是個介面型別,在呼叫該方法時,返回值可以是實現該介面的物件。   

3)乙個類可以實現多個介面。

4)介面中沒有構造方法

5)介面之間可以相互繼承,即介面間可以使多繼承

最後給乙個關於理解介面的程式例子  

package oct_17_2;

public inte***ce usb

public inte***ce store

package oct_17_2;

public class udisk implements usb,store

@override

public void start()

@override

public void end() }

package oct_17_2;

public class phone implements store,usb

@override

public void end()

@override

public void store() }

package oct_17_2;

public class pc

public usb getx()

public void runstore(store store)

}package oct_17_2;

public class test

}

執行結果:

這一部分的知識,很大一部分都是靠理解,甚至記憶的,加油!

Day09 多型 抽象方法 藉口

今天的內容是基礎班中的乙個重點。多型知識點1.多型的三個前提 繼承關係,方法重寫,父類引用指向子類物件。知識點2 成員變數在多型中 編譯看左邊,執行看左邊。成員方法在多型中 編譯看左邊,執行看右邊。靜態方法在多型中 編譯看左邊,執行看右邊。知識點3 超人的例子,向上轉型和向下轉型 class dem...

多型和抽象

多型就是指 相同的行為不同的實現 特指方法 理解多型 1.靜態多型 編譯期,系統就能決定呼叫哪個方法 通過過載實現 2.動態多型 執行期,系統才能確定動態方法所指的物件 使用動態繫結和重寫實現 注 多型中大量用到動態多型。多型的技術基礎 1.向上轉型技術 子轉父 用到動態繫結技術 執行時根據父類引用...

多型 抽象 綜合

public class soldierdemo 軍人類 author hejingzhou abstract class soldier public string getname public void action public void start public abstract void ...