1

同じ属性とメソッドを持つオブジェクトは同じクラスに属していますか?

  1. 同じメソッドと属性を持つ2つの同一のクラスを宣言し、それらをインスタンス化して、「異なるクラスに属する同じ属性とメソッドを持つオブジェクト」を持つことはできませんか?

  2. クラスAとサブクラスB(クラスAの子)の両方を同じメソッドと属性で宣言して(そしてクラスBで新しい属性やメソッドを宣言しないで)、それらをインスタンス化して「異なるクラスに属する同じ属性とメソッドを持つオブジェクト"?

この質問は良い習慣についてではありません...それはタイトルの質問の論理値(真または偽)についてです。

4

2 に答える 2

1

それは間違いなく可能です。

class A
{

    public string Property1{get;set;}
    public string Method1(int value)
    {
      ......
    }

}

class B
{
   public string Property1{get;set;}
   public string Method1(int value)
   {
     ........
   }
}

両方のクラスは同一です。同じプロパティとメソッドを持っています。ただし、それらのインスタンスは異なります。

于 2010-05-04T13:23:42.947 に答える
1

話している言語を指定しません。あなたが説明する特性を持つエキゾチックな言語があるかもしれませんが、少なくともJavaやC ++のような言語では、宣言するメソッド/インスタンス変数に基づいて2つのクラスが「同じ」であると推論する概念はありません。

したがって、答えは「いいえ、同じように見えても同じクラスではありません」です。

サブクラスの場合は少し異なります。 (メソッドや変数を追加せずに)Bのサブクラスとして宣言した場合でも、それらは異なるクラスですが、通常の継承規則により、AクラスのオブジェクトBも" is-a"です。A

于 2010-05-04T13:24:57.913 に答える