インターフェイスでプロパティを指定することは間違いなく可能です
interface IFoo {
string Name { get; set; }
string Age { get; } // Read Only
}
しかし、そうでなければあなたは正しいです。インターフェイスは動作を指定しないため、「抽象的な」メソッドとプロパティのみを定義できます。実装は、すべての単一の実装者で実行する必要があります。これは、インターフェイスの柔軟性に対して支払われる代償です。
すべての子クラス間で動作が本当に同じである場合、私は通常、抽象クラスを選択します。またはしばしば組み合わせ。つまり、インターフェイスと、そのインターフェイスを実装する基本実装を定義します。
class Foo : IFoo {
private string _name;
public Name { get { return _name; } set { _name = value; } }
public Age { get { return 42; } }
}
これにより、何らかの理由でFooから派生できないクラスのインターフェイスを使用して、迅速な実装を柔軟に行うことができます。