您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

Java中抽象类与接口的区别

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   接口和抽象类有好多相同点和类似点,很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种。

  理解抽象类

  abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢?

  抽象类:抽象类是一种特殊的基类,里面除包含一些基本的属性和方法之外,还能包含一些只声明但没有实现的方法,用abstract去声明

例如:

Java中抽象类与接口的区别 三联

  接口:接口是一种更加抽象的类型,里面声明的方法全部公开给实现者去实现,并不关心具体细节 关键字是interface

  综上所看 可以看出抽象类和接口的主要区别有:

  1.抽象类可以有自己的方法,但接口的方法只有声明

  2.抽象类的抽象方法使用abstract声明

  其它需要注意的有:

  1.一个类只能继承一个实现类,但是可以实现多个接口

  2.当一个抽象类和一个接口有公共的属性时,如果一个类同时实现这个抽象类和接口 则编译不会通过。

  接口:

  一种高度抽象的“抽象类”,使用interface关键字声明

  下面定义一个Usb接口:

  public interface Usb {

  public void start();

  public void end();

  }

  接口中没有构造方法

  接口和抽象类一样,不能用于实例化

  接口中不能定义变量,方法不准有方法体,方法默认为public,接口中方法和抽象方法不准有private修饰

  只能继承接口,支持多继承(接口之间用逗号隔开)

  类实现接口,使用关键字implements:

  1.必须实现这个接口的所有方法,除非实现类是抽象类

  2.一个类可以实现多个接口