zoukankan      html  css  js  c++  java
  • Java中的接口与抽象类的区别

       由于随着jdk版本的更新,在jdk1.8时,接口也增强了,所以我们分别来说明一下。

     (1)jdk1.8之前

      在jdk1.8之前,接口里面只能定义抽象方法和常量;而抽象类比普通类有一点不同,就是抽象类里面可以定义抽象方法,同样在实现一个接口时,普通类需要实现接口中的所有抽象方法,而抽象类不必完全实现。

      接口与抽象类最大的不同在于类只支持单继承,而接口支持多实现;即一个类只能继承一个类,但是一个类可以实现多个接口,在一个类中既要继承类又要实现接口时,需要将继承写在前面。

      一般来说,在日常开发中需要接口与抽象类结合使用,例如:你定义了一个接口,该接口下有很多个实现类,如果以后你需要增加一个所以子类实现都相同的功能,这个时候就比较麻烦了,需要所有的子类都重写一下这个方法,这就比较麻烦;所以如果一开始,你定义一个抽象类实现这个接口,然后让所有的类都继承这个类,所以需要每个子类都添加一个功能一样的方法时,只需要在抽象类中添加一个方法即可。

     (2)jdk1.8之后(包括1.8)

      由于使用抽象类会有类单继承的限制,使用接口又不容易拓展,所以在jdk1.8时,接口增强了,接口中不但可以有抽象方法,常量,而且也可以声明静态方法和使用default修饰的方法;增强的接口相当于是抽象类和之前接口的结合(增强后的接口不能定义成员变量)

  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/li666/p/12036541.html
Copyright © 2011-2022 走看看