Java学习笔记——接口(interface)浅析

概念

接口可以看作一个特殊的纯抽象类(因为它可以有静态方法和默认方法,不能说它是百分百抽象的),它将一些方法封装到一起,起到了类的蓝图的作用,接口体现了程序设计的多态和高内聚低耦合的设计思想。
语法修饰符 interface接口名{//属性//方法}

作用

  • Java可以通过实现接口来弥补它不支持多继承的局限
  • 用来实现解耦。
  • 用来实现抽象。

特点

  1. JDK8之前,接口中的方法都没有方法体,JDK8.0后接口类可以有静态方法,默认方法(加default修饰符),也就是说接口中可以有方法的具体实现。接口的静态方法属于接口,可以用接口名.静态方法;调用(默认方法的最典型用法是逐步为接口提供附加功能,而不破坏实现类。)
  2. 接口不能被实例化
  3. 接口中所有的方法默认都是public方法(默认的,可以不写修饰符),接口中抽象方法,可以不用abstract修饰符修饰
  4. 一个普通类实现接口,就必须将该接口的所有非静态方法都实现
  5. 抽象类实现接口,可以不用实现接口的方法
  6. 接口里定义的变量只能是公共的静态的常量,且变量的定义前隐含了public static final,通过接口名.属性名访问
  7. 接口允许多重继承,没有成员变量;抽象类可以继承成员变量,却不能多重继承,类通过class 类名 implements 接口A,接口B...{}继承(实现)多个接口
  8. 接口不能继承其他的类,可以继承多个别的接口,接口通过interface 接口名 extends 接口A,接口B...{}继承多个接口
  9. 接口的修饰符只能是 public和默认,但是修饰符为public时,java文件名要和接口名一样,这点和类的修饰符一样。

总的来说,接口就是一个特殊的抽象类,它们的区别主要在于成员变量(特点6)和成员方法 (1,3)的访问特性以及多继承(7,8)的差别

接口的多态

接口的引用可以指向实现了接口的类的对象
接口和类一样,存在多态传递,比如接口B extends 接口A,当一个类实现接口B时,也要把接口A里的抽象方法实现

接口和继承的区别

接口是对于方法的抽象,不是对于一类事物的抽象,它比继承更加灵活,继承是满足is - a的关系,而接口只需满足like - a的关系。实现接口的类可以是不相关的类,只是它们都具有某种表现不同的行为而已比如鱼,狗,猴子都可以实现游泳这样的接口。
接口的价值主要在于设计,设计好各种规范(方法),让其它类去实现这些方法。接口在一定程度上实现代码解耦
而继承中的抽象类,是对行为和属性的抽象,是多个类(事物)共同的抽象,比如香蕉苹果梨这多个事物可以抽象为水果类。类的继承需要满足is - a的关系

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值