手机的多样性演示:继承实现
原始手机
当遇到对于跨度比较大的不同的对象,存在某些共同点,比如照相机和电话都可以拍照,又比如电脑、手机、电话手表都可以微信电话。
那如何提取他们的共同点?— 接口interface
创建接口 interface
实现接口 implement
实现1
实现2,及实现了继承也实现了接口
接口代码
实现类
总结: 实现类SmartWatch实现接口INet,在接口中INet的connection方法由default,所以实现类SmartWatch可以不重写connection方法
接口INet
实现类SmartWatch
总结: 实现类SmartWatch实现接口INet,在接口中INet的connection方法由static,所以实现类SmartWatch也可以不重写connection方法
调用时: default方法可以对象去调用,static只能接口名去调用
实现类中: default修饰的方法可以被重写,而static不可以。值得注意的是,default重写要调用接口方法需要接口名.super实现
接口IPhoto
接口INet
实现类SmartWatch,实现connection
对于实现类1同时实现接口A接口B…时,他们如果都有方法x时,实现类1需要重写方法x
父类
接口IPhoto
接口INet
实现类
此时实现类可以不重写同名方法connetction,不重写默认调用父类中的重名方法。
1. 接口属性名重名时,实现类调用必须指定准确的接口属性名
2. 默认时,并非是继承的父类属性名
实现类要想使用默认值,必须自定义使用
定义接口IFather
定义接口ISon并继承IFather,此时接口ISon由于只是继承,所以不用重写父类IFather的say方法
定义实现类Demo实现接口ISon,此时实现类要重写ISon的所有方法,即实现run方法。
由于ISon继承了IFather类,所以ISon继承了say方法,所以此时实现类Demo也要实现say方法。
1