动机
消除重复的行为
在子类中的构造函数与父类中的构造函数是相同的
在超类中创建一个构造函数,并在子类构造函数中调用它
class Manager extends Employee...
public Manager (String name, String id, int grade) {
_name = name;
_id = id;
_grade = grade;
}
to
public Manager (String name, String id, int grade) {
super (name, id);
_grade = grade;
}
动机
构造函数与方法不同
消除重复的代码
父类的某个方法至于某个子类相关
将其移到子类中
class Employee{
int getQuota();
}
class Salesman extends Employee{}
class Engineer extends Employee{}
to
class Salesman extends Employee{
int getQuota();
}
class Engineer extends Employee{}
动机
当方法只在子类中显现
超类的字段只在某个子类中用到
将这个字段移到需要它的那些子类中去
class Employee{
int quota;
}
class Salesman extends Employee{}
class Engineer extends Employee{}
to
class Salesman extends Employee{
int quota;
}
class Engineer extends Employee{}
动机
当一个字段只在子类中使用时
类中的某些特性只被某些实例用到
新建一个子类,将上面所说的那一部分特性移到子类中去
class JobItem {
getTotalPrices()
getUnitPrice()
getEmployee()
}
to
JobItem {
getTotalPrices()
getUnitPrice()
}
class class LabotItem extends JobItem {
getUnitPrice()
getEmployee()
}
动机
当一个类的行为只用在某些实例中而不用在其他类中
两个类具有相似特性
创建一个父类,然后将这两个类中相同的部分移到父类中,然后在继承这个父类
class Department{
getTotalAnnualCost()
getName()
getHeadCount
}
class Employee{
getAnnualCost()
getName()
getId
}
to
class Party{
getAnnualCost()
getName()
}
class Department {
getAnnualCost()
getHeadCount
}
class Employee {
getAnnualCost()
getId
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-23.html
培根等致癌物质不易多吃
有个孩子急需帮助