简述抽象类和接口的区别

发布网友 发布时间:2022-03-24 19:57

我来回答

2个回答

懂视网 时间:2022-03-25 00:19

抽象类和接口的区别有:

  

  1、抽象类要被子类继承,接口要被类实现。

  

  2、接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。

  

  3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

  

  4、接口是设计的结果,抽象类是重构的结果。

  

  5、抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。

  

  6、抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。

  

  7、抽象类主要用来抽象类别,接口主要用来抽象功能。

  

      

热心网友 时间:2022-03-24 21:27

  区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在京哈,牧羊犬中找到,那么狗相对于京哈和牧羊犬来说,就属于这类事物的抽象类型;而对于“叫”这个动作来说,狗可以叫,鸟也可以叫。很明显,前者相当于所说的是抽象类,而后者指的就是接口。
  区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分
区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。
  区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com