您的位置:首页 > 其它

接口和抽象类的区别

2016-02-20 21:25 302 查看
接口和抽象类的区别:

关键字的不同, 接口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:当你关注一个事物的本质的时候,用抽象类, 当你关注一个操作的时候,用接口

接口是抽象类的变体,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: