2017-10-04 13 views
0

私は非常にjavaに新しいですし、getTax()メソッドについて混乱しています。1つの方法に2つの税率を適用するにはどうすればよいですか?

public class General extends Customer { 

    private double taxRateTickets = .06; 
    private double taxRateService = .04; 

    public General(String customerCode, String type, Person contact, String name, 
     Address address) { 
     super(customerCode, type, contact, name, address); 
     // TODO Auto-generated constructor stub 
    } 

    public double getTax() { 
     return  
    } 

    abstract public double discount(); 
    abstract public double additionalFee(); 
} 

は基本的に私は別のクラスでは、請求書のレポートをしなければならないと私は一般的な(サブクラス)顧客(スーパークラス)の税率を取得する必要があります。税率が異なる2種類の商品がある場合は、getTax()方法で税金を返金するにはどうすればよいですか?

+0

は、他のオブジェクトですか?あるいは、「2つの異なる製品」を持つ一般的なオブジェクトと顧客オブジェクトを意味しますか? –

答えて

2

これはクラスの宿題のように聞こえるので、私はちょうど正しい方向に推し進めます。Javaでメソッドをオーバーロードして、何をすべきか分かります。 getTaxesという名前のメソッドが2つありますが、引数の型によっては正しいメソッドがjavaによって選択されます。

また、もっと汚れた解決策があります:getTaxesメソッドを1つだけ作成し、instanceofを使用してメソッド引数の型をチェックします。しかし、私はこのようにしないことを強くお勧めします!

+0

または戦略のようなデザインパターンを使用するhttps://sourcemaking.com/design_patterns/strategy –

+0

私の議論はgetTaxes(double price、double rate)になる可能性がありますか? –

関連する問題