您好,登錄后才能下訂單哦!
父類能調用子類的方法嗎?
答:能。
怎么做?
案例展示:
package com.ywq; public class Test2{ public static void main(String[] args) { Son son = new Son(); Father father=new Father(son); father.fun1(); father.fun4(); } } class Father{ public Son son; public Father(Son son){ this.son=son; } public Father() { } public void fun4(){ //方法3:使用反射的方式調用子類方法 try { Class cls=Class.forName("com.ywq.Son"); Son son=(Son) cls.newInstance(); son.fun2(); } catch (Exception e) { e.printStackTrace(); } } public void fun1(){ //方法1:把子類傳遞到父類的有參構造函數中,然后調用。 System.out.println("我是父類的方法"); son.fun2(); //方法2:父類調用子類的靜態方法。 Son.fun3(); } } class Son extends Father{ public static void fun3(){ System.out.println("我是子類的靜態方法"); } public void fun2(){ System.out.println("我是子類的方法"); } }
這三種都是父類直接調用子類的方法,
好用不?好用!
解決問題了嗎?解決了!
項目中允許使用不?不允許!
我就一直沒有搞懂為什么要用父類調用子類的方法。如果一定要調用子類,那為什么要繼承它呢?搞不懂。其實這個問題可以換個角度去理解,父類建立框架,子類在重寫了父類部分的方法后,再調用從父類繼承的方法,產生不同的結果(而這正是模板方法模式)。這是不是也可以理解為父類調用了子類的方法呢?你修改了子類,影響了父類行為的結果,曲線救國的方式實現了父類依賴子類的場景,模板方法模式就是這種效果。
以上所述是小編給大家介紹的Java父類調用子類的方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。