Hello friend, I'm Ritchie.|

Ritchie里其

园龄:2年6个月粉丝:4关注:7

接口和抽象类的区别?

1、什么是接口Interface

  • 把一些没有实现的方法,封装到一起,等某个类用时再拿出来

  • interface接口名

  • class 类名 implements 接口

  • 接口中有3中方法:

  1. 接口中抽象方法,可省略abstract

  2. jdk8以后接口中可以有默认实现方法,但要用default修饰

  3. jdk8以后接口中可以有静态方法static

2、什么是抽象类Abstract

  • 被abstract修饰的方法,叫做抽象方法。
  • 抽象类中的抽象方法,子类必须实现。这样的强制性是普通类所不具备的。
  • 两种作用:
  1. 约束定义,子类必须要实现父类的抽象方法。
  2. 基类公共封装,自身不能实例化,只能由子类来实例化,子类可以重写基类方法,也可以直接用基类方法。

3、接口Interface与抽象类Abstract的区别?

  • 接口是对动作的抽象,抽象类是对根源的抽象。

  • 当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

  • 一般抽象类会被继承,其子类实现抽象方法

  • 接口可以被多重实现(implements),抽象类只能被单一继承(extends)

  • 实现(implements) : 一个类实现一个接口的关键字,实现一个接口,必须实现接口中的所有抽象方法。

1)接口不能有构造方法,抽象类可以有。

2)接口不能有方法体,抽象类可以有。

3)接口不能有静态方法,抽象类可以有。

4)接口多继承,抽象类单继承

5)接口--- 实现implement的方式,
抽象类 --- 继承extends的方式,
实现类(普通类、抽象类) ---> 实现接口

6)区别:

  1. 抽象类可以有抽象方法,只需要声明,无需实现;抽象方法不能声明为静态的,不能被static、final修饰;

  2. 接口里的方法都是抽象方法,但是都只是声明,并没有方法体;

  3. 抽象类里面可以变量,变量可以私有化;
    接口里没有成员变量(被final修饰为常量)只有常量,不能被私有化,只能是公开的;

  4. 抽象类可以有构造方法,接口中不能有构造方法;

  5. 抽象类中抽象方法的访问类型可以是public,protected,但接口中抽象方法的访问类型只能是public,并且默认为public abstract(省略则自动默认补全)

  6. 抽象类中可以有静态方法,接口中不能有静态方法。

  7. 默认的修饰符不同:

    类当中的默认的修饰符是访问权限修饰符 default

    接口中的方法的默认修饰符public abstract

    接口中的属性的默认修饰符public static final

  8. 成员不同:

    类中可以存在所有的类的成员

    接口中没有构造代码块、构造方法、静态代码块

  9. 继承规则不同:

    抽象类遵循类的继承规则- - 单继承

    接口遵循接口的继承规则- - 多实现

  10. 使用方式:

    抽象类 需要通过继承的方式,使用普通子类完成实例化操作(普通子类只能继承一个抽象类)

    接口 需要通过实现的方式,使用普通的实现类完成接口的使用(普通实现类可以同事实现多个接口)

  • 一个类可以实现多个接口,但最多只能继承一个抽象类

  • 一个类实现接口的话要实现接口的所有方法,而抽象类不一定

  • 接口不能用 new 实例化,但可以声明,但是必须引用一个实现该接口的对象

联系:

  • 都是引用数据类型

  • 都无法独立实例化

表面看,接口是一种特殊的抽象类,但类是类,接口是接口,是并列的关系,

设计层面看,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。

4、接口中可以有哪些方法?

  1. 抽象方法
  2. 常量
  3. 默认方法(JDK8)
  4. 静态方法(JDK8)
  5. 私有方法(JDK9)

本文作者:Ritchie里其

本文链接:https://www.cnblogs.com/wang-zeyu/p/16917441.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ritchie里其  阅读(142)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
✨欢迎你~🍻
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 遥か Aimer
遥か - Aimer
00:00 / 00:00
An audio error has occurred.

作词 : aimerrhythm/田中ユウスケ

作曲 : 田中ユウスケ

编曲 : 玉井健二/百田留衣

海岸線の雨に ちらばった君の影

思い出が交差する 海辺の街

君はあの日のまま いまも夢を見てた

君はあの日のまま いまも夢を見てた

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

膝までの浅瀬で 見つけた星

君まで届くなんてさ ありえないような

浅い眠りの中で 深い夢から覚めて

浅い眠りの中で 深い夢から覚めて

裸足のまま駆けてく まばゆい星

君はあの日のまま どんな夢を見てた?

君はあの日のまま どんな夢を見てた?

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

いつまでもこうして 笑っててほしい

夜空に舞い上がる 幾千の花びら

でたらめな誓いで 生きてく日々

君から届くなんてさ ありえないような