关于抽抽象类和接口
2015-12-18 14:19
288 查看
普通类------我们这些普通人;
抽象类------芙蓉姐姐(人人都有打破思想保守旧传统的能力,但是只有人家芙蓉姐姐有胆量);
接口------蜘蛛侠、超人(实现了接口就相当于你有了某种特殊功能)。
------------------------------------------------------------------------------------------------------------------------------------
接口和抽象类的区别大了。
首先从属性上来说:
1、首先是继承关系,接口是多继承的关系,接口与接口之间是多继承的,类与接口之间是多实现的关系,而抽象类是一个类,由类对他进行单继承,不能多继承,接口不能继承抽象类,但是抽象类可以实现多接口;接口不能继承类或抽象类,但是抽象类可以继承抽象类和普通类。
2、方法以及属性定义方面,抽象类可以定义任何属性的方法以及实现方法,如private、protected、native等等(当然抽象方法有所限制),但是接口定义的方法不能够有实现,且属性必须为public的实例方法,不能有native等定义等等,接口定义的属性必须是public static final的静态常量。
然后从软件开发阶段来讨论:
接口是属于设计后阶段的定义的,用来协同各个模块以及各个功能之间通信与调用定义的。而抽象类是属于开发前阶段定义的,用来实现功能模块的一些基础的或者公有的或者默认的代码,以及规定一些变动功能与实现所需要依赖的规范。
---------------------------------------------------------------------------------------------------------------------------------------------
From:http://bbs.csdn.net/topics/300130153
抽象类------芙蓉姐姐(人人都有打破思想保守旧传统的能力,但是只有人家芙蓉姐姐有胆量);
接口------蜘蛛侠、超人(实现了接口就相当于你有了某种特殊功能)。
------------------------------------------------------------------------------------------------------------------------------------
接口和抽象类的区别大了。
首先从属性上来说:
1、首先是继承关系,接口是多继承的关系,接口与接口之间是多继承的,类与接口之间是多实现的关系,而抽象类是一个类,由类对他进行单继承,不能多继承,接口不能继承抽象类,但是抽象类可以实现多接口;接口不能继承类或抽象类,但是抽象类可以继承抽象类和普通类。
2、方法以及属性定义方面,抽象类可以定义任何属性的方法以及实现方法,如private、protected、native等等(当然抽象方法有所限制),但是接口定义的方法不能够有实现,且属性必须为public的实例方法,不能有native等定义等等,接口定义的属性必须是public static final的静态常量。
然后从软件开发阶段来讨论:
接口是属于设计后阶段的定义的,用来协同各个模块以及各个功能之间通信与调用定义的。而抽象类是属于开发前阶段定义的,用来实现功能模块的一些基础的或者公有的或者默认的代码,以及规定一些变动功能与实现所需要依赖的规范。
---------------------------------------------------------------------------------------------------------------------------------------------
From:http://bbs.csdn.net/topics/300130153
相关文章推荐
- 解决 Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] crash的方法
- TabHost选项卡的功能和用法
- ABP理论学习之设置管理
- 苹果企业开发者账号申请记录
- 调用方法计算数组的和,最大值,最小值
- edittext判断获取焦点 有焦点显示clear
- Pyhont 网络编程【第一篇】初始Socket网络套接字
- 阿里云储存代码整理(由三卷天书整理)
- TODOList
- WordPress中用于获取文章信息以及分类链接的函数用法
- 面向对象设计模式--简介
- CAS实现单点登录(SSO)经典完整教程
- jQuery设计模式(二)
- Machine Learning with Spark 笔记(chapter3 )
- ccype中的字符函数
- Java狡猾面试题 Top10
- Workerman 开源高性能的PHP socket 服务器框架
- Solutions for Kess v2 connection error :"External exception EEFFACE"
- Log4j 2使用教程<转>
- chrome下可以跨域请求和模拟serve的快捷方式