【发布时间】:2011-05-02 10:12:06
【问题描述】:
如果我说得对,那么抽象类就是一个至少有一个抽象方法的类?
现在,如果它是抽象的,那么我应该无法创建该类的实例?
就像说Abst是一个抽象类的名字(因为它包含一个抽象方法)这样做:
a := Abst new.
是非法的,应该弹出错误/异常吗? 或者问题应该出现在这里:
a := Abst class new.
?
更新: 正如建议的那样,我制作了下一个方法,它不会让用户创建 Class 的实例,但它不起作用:
makeAbstract: aClass
aClass compile: 'new
^ self subclassResponsibility'.
【问题讨论】: