具有相同属性和方法的对象属于同一个类?

时间:2010-05-04 13:12:47

标签: oop class object hierarchy ambiguity

具有相同属性和方法的对象属于同一个类吗?

  1. 我不能用相同的方法和属性声明两个相同的类,实例化它们并且“具有相同属性的对象和属于不同类的方法”?

  2. 我不能使用相同的方法和属性声明类A和子类B(类A的子类)(并且不要在类B上声明任何新的属性或方法) ,实例化它们并拥有“具有相同属性的对象和属于不同类的方法”?

  3. 这个问题不是关于良好做法......而是关于标题问题的逻辑价值(真或假)。

2 个答案:

答案 0 :(得分: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)
   {
     ........
   }
}

两个班级都是相同的。拥有相同的属性和方法。但他们的情况会有所不同。

答案 1 :(得分:1)

您没有指定您正在谈论的语言;也许有一些具有你描述的属性的外来语言,但至少在Java和C ++这样的语言中,根据它们声明的方法/实例变量,没有推断两个​​类是“相同”的概念。

所以,答案是“不,他们不是同一个班级,即使他们看起来一样”。

子类的情况有点不同:如果你将B声明为A的子类(不添加任何方法或变量),它们仍然是不同的类,但是类的对象由于正常的继承规则,B也是“is-aA