同じメソッドと継承で2つのクラスを作成するにはどうすればよいですか?

PassionateDeveloper

共有する必要があるが上書きされる可能性のある、さまざまな情報と計算メソッドを持つXクラスがあります。

class Rule1 {
    int type = 1;
    string name = "Rule";
    public float Calc()
    {
        return 1 + 2 + type; // SAME
    }
}

class Rule2 {
    int type = 2;
    string name = "Rule2";
    public float Calc()
    {
        return 1 + 2 + type; // SAME
    }
}

class Rule3 {
    int type = 3;
    string name = "Rule3";
    public float Calc()
    {
        return 3 + 4 + type; // DIFFERENT
    }
}

呼び出しメソッドに記述したいのは次のとおりです。

class Calculator
{
    public void Do(List<IRules> ruleList)
    {
        foreach(var rule in ruleList)
        {
            rule.Calc();
        }
    }
}

では、インターフェイスはどのように見える必要がありcalc、デフォルトの実装としてメソッドを抽象化する方法を教えてください。

CodeCaster

あなたが最も相続のために正しいのですが、すべてではないの実装を持っている場合は、そのマークvirtualおよびoverride派生クラスでそれを:

public class BaseCalculation
{
    public virtual float Calculate()
    {
        return 42;
    }
}

public class HalfCalculation : BaseCalculation
{
    public override float Calculate()
    {
        return 21;
    }
}

BaseCalculationインターフェイスの代わりに基本クラス、を使用できるようになりました引き続きインターフェースを使用することを主張する場合でも、インターフェースでCalculate()メソッドを定義し、それを基本クラスに適用できます。

public interface IRules
{
    float Calculate();
}

public class BaseCalculation : IRules
{
    // same as above

このインターフェイスを、何かを計算する他のクラスに適用できるという追加の利点がありますが、にあるロジックはありませんBaseCalculation

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

親クラスが同じconstフィールドを持つ継承されたメソッドで、子クラスのconstフィールドを使用するにはどうすればよいですか?

分類Dev

LuaBridgeを使用して同じクラスから継承された2つのクラスを登録するにはどうすればよいですか?

分類Dev

C ++の継承されたクラスで通常のメソッドを静的メソッドに変更するにはどうすればよいですか?

分類Dev

Python 2で継承せずに別のクラスのメソッドを再利用するにはどうすればよいですか?

分類Dev

2つの異なるクラス(Scenebuilderを使用したJavaFX)で同じメソッドを使用するにはどうすればよいですか?

分類Dev

継承、2つのクラスに同じ基本クラスの内容を共有させるにはどうすればよいですか?

分類Dev

defaultdictを継承し、そのコピーメソッドをサブクラスメソッドで使用するにはどうすればよいですか?

分類Dev

メソッドが属する同じクラスのインスタンスを作成するにはどうすればよいですか?

分類Dev

Rubyの継承された親メソッドでChildクラスを取得するにはどうすればよいですか?

分類Dev

PHPのクラス継承で親メソッドのみを実行するにはどうすればよいですか?

分類Dev

別の関数のプロパティとメソッドを継承する関数をJavascriptで作成するにはどうすればよいですか?

分類Dev

2つのクラスからUITextFieldを継承するにはどうすればよいですか?

分類Dev

同じメソッドを持つ任意のクラスになることができる1つのオブジェクトを作成するにはどうすればよいですか?

分類Dev

Odooの純粋なPythonクラスから継承してメソッドを変更するにはどうすればよいですか?

分類Dev

両方のクラスがメソッドとプロパティを継承する新しいクラスを作成するにはどうすればよいですか?

分類Dev

EasyMockで抽象クラスから継承されたメソッドをモックするにはどうすればよいですか?

分類Dev

PHP OOP:同じクラスの別のメソッドでメソッドを使用するにはどうすればよいですか?

分類Dev

Pythonで、クラスインスタンスのメソッドを継承してオーバーライドし、この新しいバージョンを古いバージョンと同じ名前に割り当てるにはどうすればよいですか?

分類Dev

メインクラスの2つの変数を評価するメソッドを作成するにはどうすればよいですか?

分類Dev

Grails [Groovy]、継承されたメソッドなしでクラスが持つすべてのメソッドのリストを取得するにはどうすればよいですか?

分類Dev

継承せずにテスト間で@MockBeansとモックメソッドを共有するにはどうすればよいですか?

分類Dev

1つのクラスだけで2つの同等のメソッドを作成するにはどうすればよいですか?

分類Dev

同じ名前でパラメータが異なる2つのJNIメソッドを実装するにはどうすればよいですか?

分類Dev

同じクラスのメインメソッドから非静的メソッドにアクセスするにはどうすればよいですか?

分類Dev

同じクラスの別のメソッドでコンストラクターの状態を更新するにはどうすればよいですか?

分類Dev

Perlで複数のオブジェクトを作成し、同じメソッドにアクセスするにはどうすればよいですか?

分類Dev

initメソッドの継承を禁止するにはどうすればよいですか?

分類Dev

同じ名前のメソッドを持つ2つのインターフェースを実装するにはどうすればよいですか?

分類Dev

同じクラスの onLongClick メソッドの複数のボタンで OnLongClick リスナーを使用するにはどうすればよいですか

Related 関連記事

  1. 1

    親クラスが同じconstフィールドを持つ継承されたメソッドで、子クラスのconstフィールドを使用するにはどうすればよいですか?

  2. 2

    LuaBridgeを使用して同じクラスから継承された2つのクラスを登録するにはどうすればよいですか?

  3. 3

    C ++の継承されたクラスで通常のメソッドを静的メソッドに変更するにはどうすればよいですか?

  4. 4

    Python 2で継承せずに別のクラスのメソッドを再利用するにはどうすればよいですか?

  5. 5

    2つの異なるクラス(Scenebuilderを使用したJavaFX)で同じメソッドを使用するにはどうすればよいですか?

  6. 6

    継承、2つのクラスに同じ基本クラスの内容を共有させるにはどうすればよいですか?

  7. 7

    defaultdictを継承し、そのコピーメソッドをサブクラスメソッドで使用するにはどうすればよいですか?

  8. 8

    メソッドが属する同じクラスのインスタンスを作成するにはどうすればよいですか?

  9. 9

    Rubyの継承された親メソッドでChildクラスを取得するにはどうすればよいですか?

  10. 10

    PHPのクラス継承で親メソッドのみを実行するにはどうすればよいですか?

  11. 11

    別の関数のプロパティとメソッドを継承する関数をJavascriptで作成するにはどうすればよいですか?

  12. 12

    2つのクラスからUITextFieldを継承するにはどうすればよいですか?

  13. 13

    同じメソッドを持つ任意のクラスになることができる1つのオブジェクトを作成するにはどうすればよいですか?

  14. 14

    Odooの純粋なPythonクラスから継承してメソッドを変更するにはどうすればよいですか?

  15. 15

    両方のクラスがメソッドとプロパティを継承する新しいクラスを作成するにはどうすればよいですか?

  16. 16

    EasyMockで抽象クラスから継承されたメソッドをモックするにはどうすればよいですか?

  17. 17

    PHP OOP:同じクラスの別のメソッドでメソッドを使用するにはどうすればよいですか?

  18. 18

    Pythonで、クラスインスタンスのメソッドを継承してオーバーライドし、この新しいバージョンを古いバージョンと同じ名前に割り当てるにはどうすればよいですか?

  19. 19

    メインクラスの2つの変数を評価するメソッドを作成するにはどうすればよいですか?

  20. 20

    Grails [Groovy]、継承されたメソッドなしでクラスが持つすべてのメソッドのリストを取得するにはどうすればよいですか?

  21. 21

    継承せずにテスト間で@MockBeansとモックメソッドを共有するにはどうすればよいですか?

  22. 22

    1つのクラスだけで2つの同等のメソッドを作成するにはどうすればよいですか?

  23. 23

    同じ名前でパラメータが異なる2つのJNIメソッドを実装するにはどうすればよいですか?

  24. 24

    同じクラスのメインメソッドから非静的メソッドにアクセスするにはどうすればよいですか?

  25. 25

    同じクラスの別のメソッドでコンストラクターの状態を更新するにはどうすればよいですか?

  26. 26

    Perlで複数のオブジェクトを作成し、同じメソッドにアクセスするにはどうすればよいですか?

  27. 27

    initメソッドの継承を禁止するにはどうすればよいですか?

  28. 28

    同じ名前のメソッドを持つ2つのインターフェースを実装するにはどうすればよいですか?

  29. 29

    同じクラスの onLongClick メソッドの複数のボタンで OnLongClick リスナーを使用するにはどうすればよいですか

ホットタグ

アーカイブ