在j**a中,繼承是乙個重要的特徵,通過extends關鍵字,子類可以復用父類的功能,如果父類不能滿足當前子類的需求,則子類可以重寫父類中的方法來加以擴充套件。而在應用中就存在著兩種轉型方式。比如有父類parent,子類child1.向上轉型:父類的引用指向子類的例項parent p=new child();2.向下轉型:子類的引用的指向子類的例項child c=(child)new parent。
向上轉型,子類物件當成父類物件,只能呼叫父類的成員,如果子類重寫了父類的方法就根據這個引用指向呼叫子類重寫的這個方法。向上轉型時,父類指向子類引用物件會遺失除與父類物件共有的其他方法,也就是在轉型過程中,子類的新有的方法都會遺失掉。
在向下轉型過程中,如上所示必須要採取到強制轉型。
向上轉型和向下轉型
向上轉型 子類向上轉型為父類 注意點 轉型後父類與子類的同名函式中,子類的函式可以覆蓋父類的函式,但子類自己定義的函式將被隱藏 class a public void a2 class b extends a public void b2 public class c 向下轉型 父類被強制轉型為子類...
向上轉型和向下轉型
例如我現在有兩個類,他們之間是繼承的關係 class animal class dog extends animal void bark 通俗地講,向上轉型就是把子類的物件轉化為父類的物件,如 animal animal new dog 但是注意,向上轉型後,父類只能訪問與子類共有的方法,如以下 就...
向下轉型,向上轉型
package cn.dali.code24 向上轉型 父類引用指向子類物件 格式 父類名稱 物件名 new 子類名稱 向下轉型 當我們使用父類引用指向子類物件的時候,我們想把父類物件轉為子類物件時,需要向下轉型 向下轉型就是乙個還原動作。格式 子類名稱 物件名 子類名稱 父類物件 注意 乙個父類有...