【读书笔记】设计模式_接口与抽象类

客户对象:一个请求其他对象的服务的对象称为客户对象。对象A调用了对象B的方法,称A为客户对象。

定义一个计算员工薪水的接口,由于有不同的员工,若将计算方法都放在员工类的内部,不利于代码的维护。

public interface SalaryCal {

public double getSalary ();

}

public class CategoryA  implements SalaryCal {

double baseSalary ;

double OT;

public CategoryA  (double base ,double overTime) {

baseSalary = base ;

OT = overTime ;

}

public double getSalary () {

return ( baseSalary + OT) ;

}

}

public class CategoryB  implements SalaryCal {

double salesAmt ;

double baseSalary ;

public CategoryB  (double sa , double base) {

salesAmt = sa ;  

baseSalary = base ;

}

public double getSalary () {

return ( baseSalary + salesAmt *0.5) ;

}

}

public class Employee {

SalaryCal empType ;

String name ;

public Employee (String s ,SalaryCal c) {

name = s ;

empType = c ;

}

}

public class Main {

public static void main (String [] args) {

SalaryCal c = new CategoryA (10000 , 200) ;

Employee e = new Employee ("Albert" , c);

}

接口将多个对象都包含的方法抽象出来,这些方法在实现上不相同,但都具有相同的现实意义,例如不同员工薪金的计算方法、不同的动物都会发出不同的叫声。因此将着这些抽象出来,放在不同的具体类中进行实现。因此,接口的定义中,只有方法的定义,却不能有具体的实现。接口更能体现的是事物同一行为的不同表现,属于方法层面。

抽象类针对的是子类对抽象父类的继承,子类属于相同的实物范畴,属性一致,大部分方法也一致。对于某些方法的实现不同,需要将该方法在抽象父类中定义为抽象方法,然后在不同的子类中去实现。抽象类不能进行实例化。

抽象类和接口的使用范畴不同,接口侧重的是功能含义,抽象类具备的是继承。非洲人和亚洲人都属于对人这个抽象类的继承,只是所展示出来的肤色不同,即展示肤色的方法不同。但是对于狗和电子狗,他们的属性不同,但是都具备叫的方法,因此将叫定义为接口,在狗和电子狗两个类中进行相应的实现。

抽象类不能实例化,抽象类的抽象方法不同在抽象类中定义实现。接口只能定义方法,不能进行实现,


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值