具有相同属性和方法的对象属于同一个类?
我不能声明两个具有相同方法和属性的相同类,将它们实例化并拥有“具有相同属性和方法的对象属于不同类”吗?
我不能声明一个类 A 和一个子类 B(类 A 的子类)都具有相同的方法和属性(并且不在类 B 上声明任何新属性或方法),实例化它们并具有“属于不同类的具有相同属性和方法的对象“?
这个问题与良好做法无关......它与标题上问题的逻辑值(真或假)有关。
那绝对是可能的。
class A
{
public string Property1{get;set;}
public string Method1(int value)
{
......
}
}
class B
{
public string Property1{get;set;}
public string Method1(int value)
{
........
}
}
两个类是相同的。具有相同的属性和方法。但是他们的例子会有所不同。
你没有具体说明你在说什么语言;也许有一些外来语言具有您描述的属性,但至少在 Java 和 C++ 等语言中,没有根据它们声明的方法/实例变量推断两个类“相同”的概念。
所以,答案是“不,它们不是同一个类,即使它们看起来一样”。
子类的情况有点不同:如果你声明B
为的子类A
(不添加任何方法或变量),它们仍然是不同的类,但类的对象B
也是 " is-a
" A
,因为正常的继承规则。