由于子类的实例也是单例类的实例,所以可能出现多个单例实例并存的情况。
还有两个重构工具,PushDown和PullUp,分别实现将类方法或者属性从一个类移动到其子类或父类中。
由于超类不会像子类那样被频繁引用,对子类的命名就不必考虑太多简洁的因素。
子类没有对具体的方法做改变,也没有试图实例化超类。
类似地,子类析构函数在它完成其资源释放之后,也要调用基类的析构函数。
此原则表明,子类对象对超类对象的替代能力是优秀设计的重要标志。
所以在创建对象之前,必须构造相同类或其超类的另一个对象。
同样,您几乎总是在子代方法主体的开始或结束部分调用超类方法。
Eclipse将使用其新方法自动编写超类,然后更改兄弟类,使之使用新的超类。
在面向对象版本中,我提取了复制的方法,将其连同protected字段移到一个超类中。
在@implementation关键字后面,我们看到了类名(Employee)及其超类。
子类名称要合格:对子类的命名会表述出其与超类之间的相似和差异之处。
当然,第一个参数是额外的,我们必须用它指定调用方法所属的类。
超阶级性和人性化是民主社会主义国家观的两个显著特征。
您还会注意到的另一个差别是有多个单选按钮和一个用于选择父类的复选框。
那篇文章是我见过的关于理解超类如何运行的最好的资源。
字段是检测器从其父类继承的protected字段。
这种情况下,最好的补救办法就是将这些被引用的字段也移到这个超类中。
获取或设置一个值,该值指示是否将递归枚举请求到从指定的超类派生的所有类中。
确保选中了Constructorsfromsuperclass,并且超类是java.lang.Exception(图46)。
注意,因为两个提取方法都使用number成员变量,所以要涉及到超类。
注意,我们使用findViewById方法(在Activity子类中定义)获得不同UI元素的句柄。
当创建完一个脚本以后,它保留着默认超类的参考,就好象是它自己的助手参考一样。
我们无法用宏来实现,因为父类的内部具体实现对于我们要引用的宏是不可见的。
1·If you have more than three, or more than seven subclasses of a single exception superclass, my bet is that something is wrong.
如果有三层以上,或者在一个异常超类中子类的个数超过了七个,那我打赌一定有什么地方出错了。
2·If two classes need to support the same interface, they should both extend the same superclass.
如果两个类需要支持相同的接口,它们都应该扩展相同的超类。
3·Template methods can be provided by the implementer, who must not forget that the superclass can potentially have implemented its template methods.
模板方法可以由实现者提供,但必须注意的一点是超类有可能已经实现了其模板方法。
4·So before an object is created, another object of the same class or of its superclass must be constructed.
所以在创建对象之前,必须构造相同类或其超类的另一个对象。
5·A method of a superclass can be extended by declaring an attribute with the same name.
超类的方法可以通过使用相同的名称声明属性来扩展。
1·Another difference you'll notice are several radio buttons and a checkbox for selecting the superclass.
您还会注意到的另一个差别是有多个单选按钮和一个用于选择父类的复选框。
2·That's just the start for CtClass, though, which also defines methods for adding new fields, methods, and constructors to the class, and for altering the class name, superclass, and interfaces.
不过,这只是CtClass的部分内容,它还定义了在类中添加新字段、方法和构造函数、以及改变类、父类和接口的方法。
3·Note: Your implementation of these lifecycle methods must always call the superclass implementation before doing any work, as shown in the examples above.
注意:你的这些生命周期方法的实现必须总是在你做任何工作之前调用父类的实现,像上面展示的那样。
4·The default constructor invoked the no - arg constructor of the superclass.
默认构造函数调用父类的无参数构造函数。
5·Access protected fields of a subclass in a superclass?
访问受保护的子类在父类的域?
1·Also, each subclass inherits methods from the superclass.
同时,每个亚纲继承来自总纲的方法。