在Dart中似乎有一些特殊的类,例如num
,它们通常不能由用户定义的类继承,尽管Dart语法本身没有任何东西阻止它(例如Java {{1}或者C#的final
)。不过,内置的sealed
和num
会继承int
。
答案 0 :(得分:2)
以下是https://code.google.com/p/dart/issues/list上发现的来自Dart小组的类似问题的正式答案。
Gilad Bracha在这个场合说:
您几乎可以将int,double,bool,Null和String视为Java中的最终类(num不适合该模具,因为它具有子类型)。根据设计,我们不支持最终类,以最小化复杂性并避免代码无法子类化(就像提交者想要的那样)。我们选择了无法扩展的类型列表,而不是最终的类。
为什么:因为这些对效率至关重要。这不是一个非常纯粹的论点,但实际上大多数人会为更快的系统交换灵活性。
++++++++
RE:我的评论:这真的不是一个非常纯粹的论点,因为这无助于使语言更清晰,更好。++++++++
这也不是脱离语境,但这是2012年6月29日的官方立场。
也许今天Dart团队还有另一种解释,但只有官方回答所提问题才能获得。
P.S。
Tnanks to ringstaff获得这个答案的链接。
P.S。
如果您想让Dart语言更清晰,更好,请留下您对此官方立场的评论。
在后记中: