抽象类、接口的具体例子
来源:互联网 发布:欧美爱情动作片 知乎 编辑:程序博客网 时间:2024/05/17 08:25
Java中抽象类的举例:
StringBuffer和StringBuilder共同继承了一个父类AbstractStringBuilder。因为StringBuffer是线程安全的,StringBuilder是线程不安全的,这两个类中的数据、操作数据的行为都是一样的。StringBuffer为了保证他的线程安全,在他的每个方法上加了synchronized,即两个类的同名方法内要做了相同的操作,所以就把这个操作抽取到他们的父类AbstractStringBuilder类中。而所有的方法都是一样的,为什么AbstractStringBuilder是抽象类呢?查源码发现,只有toString()方法是抽象方法,我觉得应该是存放字符串的字符串在StringBuffer和StringBuilder这两个类中,而AbstractStringBuilder类只是提供一个工具,所以只声明一个方法名,数据在你们子类中,你们自己处理好了。这就是抽象类。
接口的例子:
接口的例子就可以从AbstractStringBuilder的这个toString()方向去思考,因为StringBuffer和StringBuilder都需要将自己的数据转换成字符串,但是他们的数据类型又不同,只能各自去操作,所以呀,就让这些有相同的行为,但是具体的行为又不同的方法抽象出来,作为接口。
Java中集合的父类list就是一个接口,因为每个集合都需要增删改查,但是集合本身又有差异,需要自己单独去处理,所以就把这些公共的增删改查的方法抽取出来,作为接口,让他们去实现,也算是集合的一种规范吧!
而在我们实际做项目的过程中?抽象类和接口怎么去用呢?
我觉得在模块与模块之间,用接口去定义。把每个模块都要做的事提取出来,放在接口中,让处理这个模块的人自己去实现。比如说每个模块都要对数据库进行操作,那么我就把增删改查提取出来,放在一个接口中,让各个模块自己根据自己的实际需求去处理自己的方法就行了。
而模块内部呢,可能有一些行为是相同的,相同的地方我去实现出来,避免子类重复实现,但是也有区别的方法,我声明一个方法体。这时候用一个抽象类,把行为相同用具体的方法去实现,不同的用方法名声明,让各自去实现好了!
- 抽象类、接口的具体例子
- 抽象类、接口的具体用法
- 抽象类和接口的简单例子
- 代理类的具体例子(1接口【Advice】)
- 类代理的具体例子(2【接口AdviceTest】)
- 抽象类 接口 例子 实例
- 类设计(抽象类,接口,普通类)的例子
- 抽象类和接口的区别,例子经典
- 抽象类和接口的区别,例子经典
- c#中抽象类、接口的使用例子
- java— 抽象类、接口、final、的理解和例子
- 面试题:接口是否可继承接口? 抽象类是否可实现接口? 抽象类是否可继承具体类? 抽象类中是否可以有静态的main方法?
- OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类
- java对于接口和抽象类的代理实现,不需要有具体实现类
- 接口与抽象类区别例子
- 接口与抽象类典型应用例子
- 运用虚拟/抽象/接口实现多态的例子(二)--抽象类.
- 具体类、虚类、抽象类(纯虚类)、接口
- ACM20题
- 非root用户安装OpenCV需要的库
- es6学习系列---(一)
- ZigBee学习笔记(1)
- libpcap+PF_RING源码分析---前言(一)
- 抽象类、接口的具体例子
- GitHub教程
- Spark分析之MemoryStore
- Caffe-3.2-(Azure云虚拟机上 + 一个完整独立的测试程序)--MFC前台+调用Caffe后台
- js跨域的几种方式:
- BZOJ 1426 收集邮票
- MatLab运行中出现的惊悚现象
- Linux_安全
- Threadlocal