- 只要我记得,我一直认为Java和C#中的接口只允许接口中的以下内容 --constants - 方法签名
1)C#如何允许接口使用getter / setter包含成员变量?
public interface IEntityBase
{
ObjectId _id { get; set; }
}
2)Java是否允许类似于上述C#代码的东西?
答案 0 :(得分:1)
属性不是成员变量。可以把它想象为私有变量的旧技术的替代品,使用GetVarA()和暴露它的SetVarA(int varA)方法。
所有属性确实是,具有更整洁的语法。这就是为什么它可以存在于一个接口中,因为从技术上讲它根本就没有定义一个变量 - 你的字符串MyName {get;}的实现可以有一个私有的'myName'成员变量备份它,而有些人可以从一个每次调用属性的Get时都会生成数据库。