4.4.1 接口

4.4.1 接口

  • 背景
  • 案例演示
    • 问题
  • 接口的实现
  • default默认方法
  • 静态方法应用
    • default和static不同
  • 多接口实现
    • 接口方法重名
    • 继承+实现都有同名方法时?
    • 属性名重名时
  • 接口的继承
    • 接口继承多个父接口

背景

4.4.1 接口_第1张图片
4.4.1 接口_第2张图片

案例演示

手机的多样性演示:继承实现

原始手机

4.4.1 接口_第3张图片
4.4.1 接口_第4张图片

二代手机
4.4.1 接口_第5张图片
3代
4.4.1 接口_第6张图片
4代
4.4.1 接口_第7张图片
测试
4.4.1 接口_第8张图片

问题

4.4.1 接口_第9张图片
继承 – 适用于有一定的演变的对象。

当遇到对于跨度比较大的不同的对象,存在某些共同点,比如照相机和电话都可以拍照,又比如电脑、手机、电话手表都可以微信电话。
那如何提取他们的共同点?— 接口interface

接口的实现

创建接口 interface

4.4.1 接口_第10张图片
实现接口 implement
实现1
4.4.1 接口_第11张图片
实现2,及实现了继承也实现了接口
4.4.1 接口_第12张图片

测试
4.4.1 接口_第13张图片
在这里插入图片描述

default默认方法

接口代码

4.4.1 接口_第14张图片
实现类
4.4.1 接口_第15张图片
总结: 实现类SmartWatch实现接口INet,在接口中INet的connection方法由default,所以实现类SmartWatch可以不重写connection方法

静态方法应用

接口INet
4.4.1 接口_第16张图片
实现类SmartWatch
4.4.1 接口_第17张图片
总结: 实现类SmartWatch实现接口INet,在接口中INet的connection方法由static,所以实现类SmartWatch也可以不重写connection方法

default和static不同

调用时: default方法可以对象去调用,static只能接口名去调用
4.4.1 接口_第18张图片
实现类中: default修饰的方法可以被重写,而static不可以。值得注意的是,default重写要调用接口方法需要接口名.super实现
4.4.1 接口_第19张图片

多接口实现

接口方法重名

接口IPhoto
4.4.1 接口_第20张图片
接口INet
4.4.1 接口_第21张图片
实现类SmartWatch,实现connection
4.4.1 接口_第22张图片

对于实现类1同时实现接口A接口B…时,他们如果都有方法x时,实现类1需要重写方法x

继承+实现都有同名方法时?

父类

4.4.1 接口_第23张图片
接口IPhoto
4.4.1 接口_第24张图片
接口INet
4.4.1 接口_第25张图片
实现类
4.4.1 接口_第26张图片
此时实现类可以不重写同名方法connetction,不重写默认调用父类中的重名方法。

属性名重名时

4.4.1 接口_第27张图片
1. 接口属性名重名时,实现类调用必须指定准确的接口属性名
2. 默认时,并非是继承的父类属性名
4.4.1 接口_第28张图片
实现类要想使用默认值,必须自定义使用

接口的继承

定义接口IFather

4.4.1 接口_第29张图片

定义接口ISon并继承IFather,此时接口ISon由于只是继承,所以不用重写父类IFather的say方法

4.4.1 接口_第30张图片

定义实现类Demo实现接口ISon,此时实现类要重写ISon的所有方法,即实现run方法。
由于ISon继承了IFather类,所以ISon继承了say方法,所以此时实现类Demo也要实现say方法。

4.4.1 接口_第31张图片

接口继承多个父接口

4.4.1 接口_第32张图片

4.4.1 接口_第33张图片

1

你可能感兴趣的:(java开发,java)