查看完整版本: 關於繼承的問題
頁: [1]

ericwu830701 發表於 2016-4-15 12:04 AM

關於繼承的問題

我有一個建構子
public class Transaction {
       
        private int accountNumber;
        private Screen screen;
        private BankDatabase bankdatabase;
       
        public Transaction(int n,Screen s,BankDatabase b){
                accountNumber=n;
                screen=s;
                bankdatabase=b;
        }

以下是他所繼承的class
public class BalanceInquiry extends Transaction{

        public BalanceInquiry(int n,Screen s,BankDatabase b){
                n=super.getAccountNumber();
                s=super.getScreen();
                b=super.getBankDatabase();
        }

但是在這個繼承的建構子BalanceInquiry 卻出現錯誤Implicit super constructor Transaction() is undefined. Must explicitly invoke another constructor
請問各位大大這要怎麼解決
getAccountNumber()
getScreen()
getBankDatabase()
是Transaction中的三個子程式
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

snowflying 發表於 2016-4-15 08:39 AM

public class BalanceInquiry extends Transaction

如果建構子第一行沒有明確呼叫父類別建構子
會自動加上 super()

但 Transaction() 沒有定義
有的是 Transaction(int n,Screen s,BankDatabase b)
所以第一行應該要呼叫 super(n1, s1, b1);
n1, s1, b1 的值就看你要給什麼了
看起來應該是把傳入 BalanceInquiry(n, s, b) 的值拿來用
但為何傳入後沒有使用,反而蓋掉區域的值,感覺有點怪

ericwu830701 發表於 2016-4-15 11:45 AM

snowflying 發表於 2016-4-15 08:39 AM static/image/common/back.gif
public class BalanceInquiry extends Transaction

如果建構子第一行沒有明確呼叫父類別建構子


請問Transaction() 沒有定義是甚麼意思?

snowflying 發表於 2016-4-15 12:32 PM

ericwu830701 發表於 2016-4-15 11:45 AM static/image/common/back.gif
請問Transaction() 沒有定義是甚麼意思?

沒有參數的 Transaction() 找不到
只找到 Transaction(int n,Screen s,BankDatabase b)

Transaction() 和 Transaction(int n,Screen s,BankDatabase b)
不一樣

ericwu830701 發表於 2016-4-15 01:36 PM

snowflying 發表於 2016-4-15 12:32 PM static/image/common/back.gif
沒有參數的 Transaction() 找不到
只找到 Transaction(int n,Screen s,BankDatabase b)



那請問一下,我只想要用
getAccountNumber()
getScreen()
getBankDatabase()
這三個子程式要怎麼寫才好<br><br><br><br><br><div></div>

snowflying 發表於 2016-4-15 02:40 PM

ericwu830701 發表於 2016-4-15 01:36 PM static/image/common/back.gif
那請問一下,我只想要用
getAccountNumber()
getScreen()


你想把那三個當做 super() 內的參數傳進去嗎?
但是 BalanceInquiry(int n,Screen s,BankDatabase b)
的 n, s, b 要用在什麼地方?
如果沒用到,不需要傳吧

頁: [1]