1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
看來(lái)您已經(jīng)在 PHP 示例中了解了繼承的基礎(chǔ)知識(shí);我只是建議閱讀一些C# 語(yǔ)法。
就其價(jià)值而言,以下方法可以解決問(wèn)題:
public abstract class Text{
? ? public string Value { get; }
? ? public Text(string val) {
? ? ? ? if (val.Length > MAX) throw new Exception();
? ? ? ? Value = val;
? ? }
? ? protected abstract int MAX{get;}
}
public class Name : Text{
? ? public Name(string val): base(val) { }
? ? protected override int MAX => 50;
}
public class Description : Text
{
? ? public Description(string val) : base(val) { }
? ? protected override int MAX => 1000;
}
我還將添加一個(gè)腳注,說(shuō)明從類構(gòu)造函數(shù)調(diào)用抽象方法/屬性時(shí)要小心(這就是我在這里所做的)。例如,如果 MAX 的值是一個(gè)計(jì)算值,該值取決于已初始化的對(duì)象,則可能會(huì)遇到一些問(wèn)題。但在這種情況下,這不會(huì)成為問(wèn)題。
- 1 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報(bào)