簡體   English   中英

多重繼承或多重接口

[英]Multiple inheritance or Multiple interfaces

我是Java的新手,我想知道哪種解決方案更正確以及為什么。

我有兩個接口:

interface Account
{
    public double getBalance();
}

interface Taxable
{
    public double calculateTaxes();
}

我需要一個實現這兩個接口的類。

對我來說,這種解決方案更直觀:

class TaxableAccount implements Account, Taxable
{
    @Override
    public double calculateTaxes()
    {
        return 10;  //just for example
    }

    @Override
    public double getBalance()
    {
        return 20;
    }

}

但是我讀了一本書有這樣的解決方案:

interface TaxableAccount extends Account, Taxable
{
}

class AccountWithTaxes implements TaxableAccount
{
    @Override
    public double calculateTaxes()
    {
        return 10;
    }

    @Override
    public double getBalance()
    {
        return 20;
    }
}

謝謝。

除非您打算向其中添加一些內容,否則TaxableAccount接口將毫無意義-至少說一種額外的方法。 空界面是一種“代碼異味”,應將其刪除,從而為您提供了完美的第一個示例。

另一個提示,這是一個“氣味”,是在第二個示例中很難為類命名一個好的,簡單的名稱-大多數情況下,命名應該是顯而易見的,不言而喻,就像在第一個示例中一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM