第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

初始化為父java后調(diào)用子類方法

初始化為父java后調(diào)用子類方法

holdtom 2022-12-15 14:46:47
這可能(肯定會)聽起來很愚蠢,但我被困住了,我找不到解決問題的合適方法。我有一個超類和兩個子類擴(kuò)展它。在基于條件的父類上,我想從兩個類中的任何一個調(diào)用該方法。這是在一個循環(huán)中,所以我決定不做同樣的檢查,而是做一次檢查,從超類創(chuàng)建一個對象,然后將該對象更改為兩個子類之一。IEpublic class Parent{    public void method() {        Parent object=new Parent();        if(a==b) {            object=new Child_A();        }else {            object=new Child_B();        }        for() {            object.method();        }    }    public void method() {        //empty method. need it just to compile    }}public class Child_A extends Parent{    public void method() {        //do something useful    }}public class Child_A extends Parent{    public void method() {          //do something useful    }}我必須編寫 Parent.method(),因為否則編譯會抱怨 Parent 類上沒有 method() 方法。因此,調(diào)用的方法不是孩子之一,而是父母方法。我讀過需要將對象直接分配給類,例如Childen_A object=new Childen_A. 問題是我想對兩種情況 ( object.method()) 使用相同的命令,無論它指的是哪個類。奇怪的是,在調(diào)試期間,我看到該對象的類型為 Child_A,但調(diào)用了 super 方法。我知道解決方案是創(chuàng)建兩個不同的對象,每個子類一個,但這會使我的代碼更難看,我將不得不在循環(huán)中使用 if 語句。所以正確的方法必須是public void method() {   for() {       if(a=b) {            Child_A object=new Child_A();            object.method();       }else {            Child_B() object=new Child_B();            object.method();        }    }}有沒有辦法避免循環(huán)內(nèi)的 if 語句?謝謝
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗 獲得超7個贊

你的代碼應(yīng)該是


public class Parent {


    public void method() {


    }


    // OR


    public abstract void method(); // and make the class abstract as well

}


public class Child_A extends Parent {


    @Override

    public void method() {

        //do something useful

    }

}


// same with Child_B


查看完整回答
反對 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號