接口和抽象类的区别
2016-02-20 21:25
302 查看
接口和抽象类的区别:
关键字的不同, 接口interface 抽象类abstract
创建方式:
抽象类: 可以是public 也可以是protected 但是不能是private 不能是私有的 不然不能被子类继承
1.接口是对动作的抽象,抽象类是对根源的抽象。
2.抽象类表示的是,这个对象是什么。 接口表示的是,这个对象能做什么。 比如,男人,女人,这两个类(如果是类的话....),他们的抽象类是人,说明他们是人。
人可以吃东西,动物也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不能同时是生物,又是非生物),但是可以实现多个接口(吃饭接口,说话接口)。
3.接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
4.接口可以多实现,抽象类只能单继承。
5.接口定义方法,不能实现,而抽象类可以实现部分方法。
6.接口中基本数据类型为static而抽象类不是的。
ps:当你关注一个事物的本质的时候,用抽象类, 当你关注一个操作的时候,用接口
接口是抽象类的变体,
关键字的不同, 接口interface 抽象类abstract
创建方式:
抽象类: 可以是public 也可以是protected 但是不能是private 不能是私有的 不然不能被子类继承
[public] abstract class ClassName { abstract void fun(); }接口:同抽象类一样 可以是public 和 protected 但是不能是private
<code class="java plain" style="line-height: 21.6px; white-space: nowrap; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; min-height: auto !important; background: none !important;"></code><pre name="code" class="java">[public]<code class="java plain" style="line-height: 21.6px; white-space: nowrap; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; min-height: auto !important; background: none !important;"> </code><span style="font-family: Arial, Helvetica, sans-serif;">interface Door {</span>public abstract void open(); public abstract void close();}
1.接口是对动作的抽象,抽象类是对根源的抽象。
2.抽象类表示的是,这个对象是什么。 接口表示的是,这个对象能做什么。 比如,男人,女人,这两个类(如果是类的话....),他们的抽象类是人,说明他们是人。
人可以吃东西,动物也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不能同时是生物,又是非生物),但是可以实现多个接口(吃饭接口,说话接口)。
3.接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
4.接口可以多实现,抽象类只能单继承。
5.接口定义方法,不能实现,而抽象类可以实现部分方法。
6.接口中基本数据类型为static而抽象类不是的。
ps:当你关注一个事物的本质的时候,用抽象类, 当你关注一个操作的时候,用接口
接口是抽象类的变体,
相关文章推荐
- (基础)指针的引用调用,通过指针进行数组的输入输出,指针与++
- 传递指向指针的引用
- djang1.6+apache2+ubuntun14.0
- ssh 执行远程操作
- Android native Thread实现 和Java Thread区别
- [数据重现-文件系统原理精解与数据恢复最佳实践].(马林).影印版及光盘下载地址
- NumPy学习
- zabbix基本概念
- 指针与数组关系
- 用margin实现两列布局中的自适应列
- Ubuntu14.04(32位)下安装使用docker
- 看懂UML类图和时序图
- android 接入微信支付和分享填坑
- c++笔试题总结2
- 【POJ 3352】 Road Construction(边联通分量入门)
- 说说基本的布局观
- 在ubuntu下安装mysql
- 实例解析MySQL性能瓶颈排查定位
- 用python实现Huffman编码
- Java 拓扑图之设备面板图PortDemo