【读书笔记】设计模式_接口与抽象类
来源:互联网 发布:低碳钢拉伸试验数据 编辑:程序博客网 时间:2024/06/06 06:49
客户对象:一个请求其他对象的服务的对象称为客户对象。对象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);
}
接口将多个对象都包含的方法抽象出来,这些方法在实现上不相同,但都具有相同的现实意义,例如不同员工薪金的计算方法、不同的动物都会发出不同的叫声。因此将着这些抽象出来,放在不同的具体类中进行实现。因此,接口的定义中,只有方法的定义,却不能有具体的实现。接口更能体现的是事物同一行为的不同表现,属于方法层面。
抽象类针对的是子类对抽象父类的继承,子类属于相同的实物范畴,属性一致,大部分方法也一致。对于某些方法的实现不同,需要将该方法在抽象父类中定义为抽象方法,然后在不同的子类中去实现。抽象类不能进行实例化。
抽象类和接口的使用范畴不同,接口侧重的是功能含义,抽象类具备的是继承。非洲人和亚洲人都属于对人这个抽象类的继承,只是所展示出来的肤色不同,即展示肤色的方法不同。但是对于狗和电子狗,他们的属性不同,但是都具备叫的方法,因此将叫定义为接口,在狗和电子狗两个类中进行相应的实现。
抽象类不能实例化,抽象类的抽象方法不同在抽象类中定义实现。接口只能定义方法,不能进行实现,
- 【读书笔记】设计模式_接口与抽象类
- C#设计模式读书笔记:抽象类跟接口的比较
- 0013_抽象类与接口的应用及设计模式
- 2.java设计模式接口型模式(读书笔记)(讲解接口和抽象类)
- 抽象类与接口与模板方法设计模式
- 黑马程序员_抽象类与模板方法设计模式
- 从设计模式看抽象类与接口的区别
- 从设计模式看抽象类与接口的区别
- 设计模式前篇——抽象类与接口
- 从设计模式看抽象类与接口的区别
- java抽象类与接口——设计模式
- 设计模式:接口与抽象类的区别
- java_接口和抽象类与设计模式
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类与接口
- 黑马程序员_Java基础_抽象类,模板设计模式,接口,内部类,多态
- (转载)SQL Server 2005 日志文件过大处理
- 【leetcode】Combination Sum II
- Android中Cursor类的概念和用法
- 参考商品 - Reference Article
- iOS布局和屏幕适配的一点总结
- 【读书笔记】设计模式_接口与抽象类
- Andro - Multipurpose OpenCart 2.X 自适应主题模板 ABC-0651-01
- vetor, list, map, set的区别
- 如何分离附加数据库 (SQL Server Management Studio)
- Wireshark基本介绍和学习TCP三次握手
- hdu1548
- NetworkOnMainThreadException异常
- call_user_func
- Leetcode Letter Combinations of a Phone Number