パスワードを忘れた? アカウント作成

C#学習 21」記事へのコメント

  • by Anonymous Coward

    クラスを覚えたての人だとガンガン継承してしまいがち
    継承が多段になると「結局どれが実行されてんのよ」となってしまい、見通しが悪くなる
    これを起こりにくくするためと言う側面があります
    c++とかだとクラスを複数継承できるので、更に複雑さアップ。枝状に別れたスーパークラスをたどっていくと同じクラスがあったりして同名のメンバ変数があるが、どっちのクラスの変数なのかなど、もうわやになってしまう

    そんなわけでクラスの継承は一個にしたい
    でも機能は複数持たせたい
    そこでクラスは一つだけ継承可、その他はインタフェイスで、って形になってます
    純粋仮想関数だけを持つク

    • by Anonymous Coward

      強制したい機能を分割できること、ですかねぇ。
      オブジェクト解放時に破棄したいリソースを必ず破棄させる → IDisposable
      オブジェクト同士で比較できる → IComparable
      オブジェクトを文字列として表現できる → IFormattable
      抽象クラスの多重継承でも良いのですが、どうせ抽象メソッドだけになるのだし。

      抽象クラスはそれこそオブジェクトやクラスの抽象的表現として使いたい。

      • by Anonymous Coward on 2021年01月07日 20時15分 (#3954875)

        インターフェースはインターフェースでしょ。USBとか車の給油口。
        それを実装しているものがなんのためのものかと何を受け取って何を返すのかを表現するもの。
        だから抽象的には同じだが具体的には違うことを…

        • by Anonymous Coward

          わざわざUSBインターフェースなんぞ使わんでもarduinoでいいんじゃね?って話でしょ。
          あるいはキーボードキットなんかの標準HIDデバイスキット。

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

処理中...