您的位置:首页 > 编程语言 > Java开发

abstract class 和 interface 有什么区别

2017-04-03 18:09 344 查看
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况,不能创建 abstract 类的实例。

然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例,不能有抽象构造函数或抽象静态方法。

Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类,取而代之,在子类中实现该方法,知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。新型多继承性可通过实现这样的接口而获得。

接口中的所有方法都是抽象的,所有成员变量都是 public static final 的。一个类可以实现多个接口,当类实现接口时,必须实现接口的所有方法。

抽象类在 Java 语言中表示的是一种单继承的关系,对于 interface 来说则不然,并不要求 interface 的实现者和 interface 定义在概念本质上是一致的,仅仅是实现了interface 定义的契约而已;

抽象类中可以定义自己的成员变量,也可以包含非抽象的方法,而在接口中只能有静态的常量,所有方法必须是抽象的;笔者邮箱:javajre@163.com

实现抽象类时可以只实现其中的部分方法,而要是实现一个接口的话就必须实现这个接口中的所有抽象方法

原文链接:http://blog.csdn.net/okxuewei

-----------

2017年4月1日,中共中央、国务院印发通知,决定设立河北雄安新区。这是以习近平同志为核心的党中央作出的一项重大的历史性战略选择,雄安新区是继深圳经济特区和上海浦东新区之后又一具有全国意义的新区,是千年大计、国家大事。如果我不去雄安新区种田,雄安新区会变成怎样?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java基础