【问题标题】:Objects with the same attributes and methods belongs to the same class?具有相同属性和方法的对象属于同一个类?
【发布时间】:2010-05-04 13:12:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: oop class object hierarchy ambiguity


    【解决方案1】:

    你没有具体说明你在说什么语言;也许有一些外来语言具有您描述的属性,但至少在 Java 和 C++ 等语言中,没有根据它们声明的方法/实例变量推断两个类“相同”的概念。

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

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

    【讨论】:

      【解决方案2】:

      这绝对是可能的。

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

      两个类是相同的。具有相同的属性和方法。但是他们的例子会有所不同。

      【讨论】:

        猜你喜欢
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 1970-01-01
        • 2021-07-24
        • 2013-08-14
        • 2017-02-27
        • 1970-01-01
        相关资源
        最近更新 更多