• Java中的接口与抽象类的区别


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

     (1)jdk1.8之前

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

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

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

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

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

  • 相关阅读:
    软件公司项目经理岗位职责
    指针和链表
    数据结构
    五子棋
    AtCoder Grand Contest 031 B
    两道dp
    博客搬迁
    [Codeforces Round #526 (Div. 2)]
    [Educational Codeforces Round 55 (Rated for Div. 2)][C. Multi-Subject Competition]
    [codeforces Mail.Ru Cup 2018 Round 3][B Divide Candies ][思维+数学]
  • 原文地址:https://www.cnblogs.com/li666/p/12036541.html
Copyright © 2020-2023  润新知