我有以下两个类:
abstract class LogItem {
public String payload { get; set; }
public String serverId { get; set; }
public DateTime timeRecieved { get; set; }
}
class MyLogItem : LogItem
{
//No I want this to have to have the members from the abstract class above, as if it where an interface?
}
所以换句话说,我想要一个类型if接口可以有定义或变量,所有实现它的类必须有,但是如果需要它们可以添加更多?
上面的示例构建,即使我不添加抽象类中的成员。
答案 0 :(得分:2)
修改的
忘记我之前说过的话。这些是属性,而不是方法。要使它们可以在派生类上访问,您可以将它们设为protected
或public
。不同之处在于公共成员对世界是可见的,而受保护的成员对于类和子类是可见的。
从LogItem派生的任何类都可能包含其他变量。
abstract class LogItem {
public String payload { get; set; }
public String serverId { get; set; }
public DateTime timeRecieved { get; set; }
}
class MyLogItem : LogItem
{
//No I want this to have to have the members from the abstract class above, as if it where an interface?
private void TestMethod(){
String test = payload;
}
}
查看this帖子了解更多信息
您的MyLogItem类可以直接引用上述任何成员。他们可以访问
您可以声明具有这些
的界面 public interface MyInterface {
public String payload { get; set; }
public String serverId { get; set; }
public DateTime timeRecieved { get; set; }
}
和你的班级
public class MyLogItem : MyInterface
{
String _payload;
public String payload { get{ return _payload; } set {_payload=value;} }
...
}
答案 1 :(得分:0)
abstract
关键字也可以应用于方法,如here所述。