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 ...