abstract class和interface有什么区别?

  声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

  接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

时间: 2024-10-16 03:23:25

abstract class和interface有什么区别?的相关文章

abstract class和interface有什么区别(转载自:XBOX)

abstract   class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract   class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract   class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.

abstract class 和 interface 有什么区别?(抽象类和接口的区别)

抽象类: 含有abstract修饰符的class即为抽象类, abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class, abstract class类中的方法不必是抽象的. abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法. 如果的子类没有实现抽象父类中的所有抽象方法,那么子类也须定义为abstract类型. 接口:接口(interface)可以说成是抽象类的一种特例,

abstract class和interface有什么区别:

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract 类的实例.然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例.不能有抽象构造函数或抽象静态方法.Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为.取而代之,在子类中实现该方法.知道其行为的其它类可以在类中实现这些方法. 接口(interface)是抽象类的变

Java abstract class vs interface

前言 abstract class和interface都是java用来描述抽象体的,不知道是否有同学跟我一样对这两者的语法层面的区别以及如何选择这两者还存在着疑惑,反正接下来,让我详细介绍一下abstract class和interface. 理解抽象类 在面向对象的概念中,所有的对象都是通过类来描述的.但是反过来却不是这样,并不是所有的类都是用来描述对象的.因为这个类中可能没有足够的信息来描述一个具体的对象,这样的类就是抽象类(ps:注意这里的抽象类不是单指abstract class).抽象

abstract class 和 interface

含有abstract修饰符的class即为抽象类,abstract类不能创建实例对象.含有abstract方法的类必须定义为abstract class, abstract class 中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(concrete)子类中实现, 所以, 不能有抽象构造方法或抽象静态方法.如果子类没有实现抽象父类中的所抽象发法,那么子类也必须定义为abstract类型. 接口(interface)可以说成是抽象类中的一种特例, 接口中的所有方法都必

【转】abstract class和interface的区别

在编程语言中,abstract class和interface是支持抽象类定义的两种机制.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理. Abstract class Interface 实例化 不能 不能 类

abstract class和interface的区别

在Java语言中,abstract class和interface是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理. Abst

Abstract Class与 Interface 的区别

表格                                                                                               Abstract class Interface 实例化 不能 不能 类 一种继承关系,一个类只能使用一次继承关系.可以通过继承多个接口实现多重继承 一个类可以实现多个interface 数据成员 可有自己的 静态的不能被修改即必须是static final,一般不在此定义 方法 可以私有的,非abstr

abstract class与interface的区别与联系

1.相同点:A. 两者都是抽象类,都不能实例化.B. interface实现类及abstract class的子类都必须要实现已经声明的抽象方法. 2. 不同点:A. interface需要实现,要用implements,而abstract class需要继承,要用extends.B. 一个类可以实现多个interface,但一个类只能继承一个abstract class.C. interface强调特定功能的实现,而abstract class强调所属关系.D.尽管interface实现类及a