この継承の私の間違いは何ですか?

ヴー・ドゥック・ドゥン

基本クラスにsquare依存する継承クラスを作成しようとしていますpolygon残念ながら、私の継承クラスにエラーがあります。

これは私のpolygonクラスです:

class Polygon
{
    public int Numberofsides { get; set; }=0
    public Polygon(int numberofsides)
    {
        Numberofsides = numberofsides;
    }
}

そしてこれは私のSquareクラスです:

class Square : Polygon
{
    public float Size { get; set; }
    public Square (float size)
    {
        Size = size;
        Numberofsides = 4;
    }
}

私のSquareクラスにはこのエラーがあります

'Polygon.Polygon(int)'の必須仮パラメータ 'numberofsides'に対応する引数が指定されていません

私はそれを解決する方法を理解しておらず、知りません。

TheJP

ジョーンズポリスの答えは、エラーを修正するための解決策です。

ただし、この方法で継承を使用しないでください。これは、「RectangleがSquareから継承する必要があるのか​​、SquareがRecangleから継承するのか」という古典的な問題です。答えはどちらでもありません。(これは例えばここで議論されています:https//softwareengineering.stackexchange.com/questions/238176/why-would-square-inheriting-from-rectangle-be-problematic-if-we-override-the-set

ここでも同じことが言えます。SquareはPolygonから継承しないでください。誰かがポリゴンタイプのオブジェクト(クラスインスタンス)を取得した場合、Squareへの制限を期待しない可能性があるためです。これは、リスコフの置換原則に違反しています。

置換可能性は、オブジェクト指向プログラミングの原則であり、コンピュータプログラムでは、SがTのサブタイプである場合、タイプTのオブジェクトをタイプSのオブジェクトに置き換えることができます(つまり、タイプTのオブジェクトを任意のオブジェクトに置き換えることができます)。サブタイプSのオブジェクト)Tの望ましいプロパティ(正確さ、実行されたタスクなど)を変更することなく。

https://en.wikipedia.org/wiki/Liskov_substitution_principle

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

(PHP) ここでの私の間違いは何ですか?

分類Dev

Javaでの継承と委任の違いは何ですか

分類Dev

nativesdkの継承とBBLASSEXTEND = nativesdkの違いは何ですか?

分類Dev

java クラス継承と javabean 継承の違いは何ですか?

分類Dev

抽象化と継承の違いは何ですか?

分類Dev

このIFで私が間違っていることは何ですか?

分類Dev

プロトタイプ継承のこれら2つの実装の違いは何ですか?

分類Dev

KotlinのSealedクラスと継承の原則の違いは何ですか?

分類Dev

2つのタイプの継承の違いは何ですか?

分類Dev

APIViewとModelViewSetの使用または継承の違いは何ですか

分類Dev

私はSedで何が間違っているのですか

分類Dev

Apache Maven:継承、集約、依存関係の違いは何ですか?

分類Dev

ミックスインと継承の違いは何ですか?

分類Dev

私は何を間違っているのですか?

分類Dev

消防署-私は何が間違っているのですか?

分類Dev

JComboBox。私は何が間違っているのですか?

分類Dev

javascript-私は何が間違っているのですか?

分類Dev

この構造体が継承しているタイプは何ですか?

分類Dev

このクエリは機能しません。私は何が間違っているのですか?

分類Dev

無限ループでのこの試みで私は何を間違っていますか?

分類Dev

ここの違いは何ですか?

分類Dev

このマップの破壊は、私が期待するようには機能していません。私は何が間違っているのですか?

分類Dev

文字の変更、私は何が間違っているのですか?

分類Dev

入力の検証。私は何が間違っているのですか?

分類Dev

PostgreSQL:ビューとテーブルの継承を使用する際の主な違いは何ですか?

分類Dev

私が間違っていることは何ですか?サブフォルダーの.htaccess

分類Dev

私はここで何が間違っているのですか?それともこれはclang ++のバグですか?

分類Dev

Djangoでカスタムユーザーモデルを作成する場合、models.ModelとAuthUserから継承することの違いは何ですか?

分類Dev

この長いものから広いものへの再形成で私は何が間違っているのですか?

Related 関連記事

  1. 1

    (PHP) ここでの私の間違いは何ですか?

  2. 2

    Javaでの継承と委任の違いは何ですか

  3. 3

    nativesdkの継承とBBLASSEXTEND = nativesdkの違いは何ですか?

  4. 4

    java クラス継承と javabean 継承の違いは何ですか?

  5. 5

    抽象化と継承の違いは何ですか?

  6. 6

    このIFで私が間違っていることは何ですか?

  7. 7

    プロトタイプ継承のこれら2つの実装の違いは何ですか?

  8. 8

    KotlinのSealedクラスと継承の原則の違いは何ですか?

  9. 9

    2つのタイプの継承の違いは何ですか?

  10. 10

    APIViewとModelViewSetの使用または継承の違いは何ですか

  11. 11

    私はSedで何が間違っているのですか

  12. 12

    Apache Maven:継承、集約、依存関係の違いは何ですか?

  13. 13

    ミックスインと継承の違いは何ですか?

  14. 14

    私は何を間違っているのですか?

  15. 15

    消防署-私は何が間違っているのですか?

  16. 16

    JComboBox。私は何が間違っているのですか?

  17. 17

    javascript-私は何が間違っているのですか?

  18. 18

    この構造体が継承しているタイプは何ですか?

  19. 19

    このクエリは機能しません。私は何が間違っているのですか?

  20. 20

    無限ループでのこの試みで私は何を間違っていますか?

  21. 21

    ここの違いは何ですか?

  22. 22

    このマップの破壊は、私が期待するようには機能していません。私は何が間違っているのですか?

  23. 23

    文字の変更、私は何が間違っているのですか?

  24. 24

    入力の検証。私は何が間違っているのですか?

  25. 25

    PostgreSQL:ビューとテーブルの継承を使用する際の主な違いは何ですか?

  26. 26

    私が間違っていることは何ですか?サブフォルダーの.htaccess

  27. 27

    私はここで何が間違っているのですか?それともこれはclang ++のバグですか?

  28. 28

    Djangoでカスタムユーザーモデルを作成する場合、models.ModelとAuthUserから継承することの違いは何ですか?

  29. 29

    この長いものから広いものへの再形成で私は何が間違っているのですか?

ホットタグ

アーカイブ