具有相同属性和方法的对象属于同一个类吗?
我不能用相同的方法和属性声明两个相同的类,实例化它们并且“具有相同属性的对象和属于不同类的方法”?
我不能使用相同的方法和属性声明类A和子类B(类A的子类)(并且不要在类B上声明任何新的属性或方法) ,实例化它们并拥有“具有相同属性的对象和属于不同类的方法”?
这个问题不是关于良好做法......而是关于标题问题的逻辑价值(真或假)。
答案 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-a
”A
。