【发布时间】:2013-07-04 12:59:56
【问题描述】:
我的应用程序中有以下代码。
public class GeneralInfo
{
private string _id;
private string _name;
public string id
{
set
{
_id = value;
}
get
{
return _id;
}
}
public string name
{
set
{
_name = value;
}
get
{
return _name;
}
}
}
public class SecureInfo
{
private string _password;
public string password
{
set
{
_password = value;
}
get
{
return _password;
}
}
}
public class User
{
}
我需要在上面的代码中应用多重继承,即。类 GeneralInfo、SecureInfo 属性应该可以在用户类中访问。
我知道使用接口可以实现多重继承。但是我需要在接口中限制的基类中定义属性。
我怎样才能做到这一点?
【问题讨论】:
-
不是。 C# 中没有多重继承。如果接口不能为您解决问题,那么您就别无选择了。
-
您确定需要继承吗?您说“类 GeneralInfo,SecureInfo 属性应该可以在用户类中访问”。所以也许 GeneralInfo 和 SecureInfo 应该只是用户类的属性......
-
您确定需要它吗?看起来用户是一个
GeneralInfo,但我认为它有一个SecureInfo。 -
组合优于继承。用户不是 SecureInfo。这就是继承的意思。用户拥有 SecureInfo。见en.wikipedia.org/wiki/Composition_over_inheritance
-
@RaphaëlAlthaus 因为这些类将在许多其他类(如 User)中重用。例如:GeneralInfo 将在可重用的 User、books、sites 类中通用。
标签: c# .net inheritance interface