第14章 抽象类和接口
2016-06-08 22:05
218 查看
抽象类:类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计的非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类。类名前使用abstract
抽象方法:父类中的方法,因为父类为抽象,无法根据具体的实例进行实现,因此,这样的方法属于抽象方法。方法头使用abstract
UML中抽象类和抽象方法的名字用斜体表示:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160608214121043-139434305.jpg)
抽象类不能使用new创建实例。抽象方法只有定义而没有实现。它的实现由子类提供。一个包含抽象方法的类必须声明为抽象类。
抽象类的构造方法定义为protected,因为它只被子类使用。创建一个具体的子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。
关于抽象类的几个关注点:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160608220709777-1491750184.jpg)
接口:
接口只包含常量和抽象方法,它的目的是指明多个对象的共同行为。
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160609100957058-553765417.jpg)
类和接口之间的关系称为接口继承(interface inheritance)。
下面是接口、类、继承、实现的举例:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160609104512465-1571639182.jpg)
监听器:能够处理按钮上的动作事件的对象。 按钮是动作来源的源对象(source object)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612222622324-522748581.jpg)
Cloneable接口:
创建一个对象拷贝。
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612223721027-1320807720.jpg)
浅复制和深复制:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612224631011-1838560643.jpg)
接口和抽象类的区别:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612225434324-962785673.jpg)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612225738824-627902389.jpg)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160613144654776-1652077714.jpg)
抽象方法:父类中的方法,因为父类为抽象,无法根据具体的实例进行实现,因此,这样的方法属于抽象方法。方法头使用abstract
UML中抽象类和抽象方法的名字用斜体表示:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160608214121043-139434305.jpg)
抽象类不能使用new创建实例。抽象方法只有定义而没有实现。它的实现由子类提供。一个包含抽象方法的类必须声明为抽象类。
抽象类的构造方法定义为protected,因为它只被子类使用。创建一个具体的子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。
关于抽象类的几个关注点:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160608220709777-1491750184.jpg)
接口:
接口只包含常量和抽象方法,它的目的是指明多个对象的共同行为。
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160609100957058-553765417.jpg)
类和接口之间的关系称为接口继承(interface inheritance)。
下面是接口、类、继承、实现的举例:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160609104512465-1571639182.jpg)
监听器:能够处理按钮上的动作事件的对象。 按钮是动作来源的源对象(source object)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612222622324-522748581.jpg)
Cloneable接口:
创建一个对象拷贝。
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612223721027-1320807720.jpg)
浅复制和深复制:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612224631011-1838560643.jpg)
接口和抽象类的区别:
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612225434324-962785673.jpg)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160612225738824-627902389.jpg)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160613144654776-1652077714.jpg)
![](https://images2015.cnblogs.com/blog/878794/201606/878794-20160613152735135-855654949.jpg)
相关文章推荐
- 0608 (用户故事)任务-具体工作流程安排
- 把一个内容为16进制 的文本文件,转换成10进制的文本文件
- 机器学习、自然语言处理、大数据和keras学习资料
- java图形和文本学习
- 张小军:象征资本的再生产——从阳村宗族论民国基层社会
- EditText设置IME动作问题
- 折半插入排序
- Ubuntu 14.04+Opencv-2.4.9+Qt配置
- 2016-6-8
- 梦断代码阅读笔记01
- Appium+Robotframework实现手机应用的自动化测试-1:Appium简介
- 用Redis存储Tomcat集群实现Session共享
- 第15周阅读程序(1)
- 【HTML笔记三】认识标签二
- .典型用户 - 场景
- C++第二次上机5-5
- 网友收集的JQuery代码(收集汇总)
- freemarker list (长度,遍历,下标,嵌套,排序)
- IplImage 结构体的解释
- tarjan算法求桥双连通分量 POJ 3177 Redundant Paths