1

「A」が「B」のサブタイプである場合、「A」は「B」のすべてのフィールドとメソッドを継承し、さらに「A」には独自のメソッドとフィールドがあることを意味します。'A' は 'B' のスーパーセットと見なされるべきですか? サブタイピングのサブセット解釈はどのように有効ですか? 逆であってはいけませんか?

しかし、「車」と「乗り物」という 2 つのクラスがある場合、「車」のセットが「乗り物」のセットのサブセットであることは理にかなっています。ただし、「Cars」のフィールドとメソッドは「Vehicles」のスーパーセットです。だから私はこれに関して少し混乱しています。

4

1 に答える 1

1

どちらが関係の「サブ」であるべきかについて、かつていくつかの論争がありました. これが、C++ が「スーパー クラス」と「サブ クラス」ではなく「基本クラス」と「派生クラス」という用語を使用する主な理由の 1 つです。Stroustrup は質問全体を避けたかった。

しかし、コメントで@usrが言ったことを反映するために、用語戦争は何年にもわたって落ち着き、「インスタンスのサブセット」は「サブクラス」を表すことが一般に受け入れられています。

于 2015-12-12T02:09:12.837 に答える