当前位置:网站首页>接口(第九天)
接口(第九天)
2022-08-02 00:19:00 【不习惯有你】
接口interface
java中的继承关系是单继承,如果拥有多个父类的时候,可以考虑使用接口进行实现
java中的接口具备广泛的使用
用法:
使用interface来修饰
接口中可以包含多个方法,且方法跟抽象类中的抽象方法一致,可以不写实现,子类在实现的时候必须要实现
子类实现接口使用implements关键词
特征:
1.接口中的所有方法都是抽象方法,不能包含方法的实现
2.接口中的所有方法的访问修饰权限都是public,不写并不是默认访问权限,而是public
3.接口不能被实例化
4.接口的子类必须要实现接口中所有的方法,跟抽象类有所不同,抽象类中的抽象方法必须要被子类实现
5.子类可以拥有实现多个接口public class A extends B implements C,D,E,F都是可以的
6.接口中的变量都是静态常量,如果变量没有使用static关键字修饰,它也表示静态常量,不用final关键字修饰,也是常量
7.接口中的方法和常量无论是否添加public修饰,默认的权限有且仅有一个,就是public
接口的使用
1.接口代表一种能力,接口中可以定义N多种方法,子类在进行实现的时候,必须要实现这些方法,将这些方法进行实现,就意味着具体了方法的能力
关心实现类有何能力,而不关心实现细节
2.接口是一种约定
接口是比抽象类还要抽象的抽象类
规范和具体实现的分离
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...的思想”
接口的本质是契约,定制好后大家都遵守
接口相关规则:
可以定义一个新接口,用extends去继承一个已有的接口
可以定义一个类,用implements去实现一个接口中所有方法
可以定义一个抽象类,用implements去实现一个接口中部分方法
注意:extends必须位于implements之前
抽象类和接口的区别:
1.抽象类中的方法可以包含抽象方法,也可以有普通方法,接口中只能包含抽象方法
2.抽象类中使用abstract关键字来修饰,而接口使用interface关键字来修饰
3.子类使用extends关键字来继承抽象类,使用implements来实现接口
4.子类继承抽象类的时候必须要实现所有的抽象方法,普通方法可以不重写,而接口中所有的方法必须实现
5.抽象类中可以定义成员变量,而接口中只能定义静态常量
6.抽象类在子类实现的时候是单继承,而接口是多继承
7.抽象类和接口都不能实例化,但是抽象类中可以有构造方法,接口中不能有构造方法
8.抽象类中可以实现接口,并且不实现接口中的方法,而接口只能继承接口,不能实现接口
边栏推荐
猜你喜欢
随机推荐
Maxwell 一款简单易上手的实时抓取Mysql数据的软件
Test Cases: Four-Step Test Design Approach
青蛙跳台阶
使用jOOQ将Oracle风格的隐式连接自动转换为ANSI JOIN
管理基础知识9
JS中的防抖和节流
ELK日志分析系统
管理基础知识13
实现删除-一个字符串中的指定字母,如:字符串“abcd”,删除其中的”a”字母,剩余”bcd”,也可以传递多个需要删除的字符,传递”ab”也可以做到删除”ab”,剩余”cd”。
Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性
What does the errorPage attribute of the JSP page directive do?
鲲鹏编译调试插件实战
抖音数据接口API-获取用户主页信息-监控直播开启
Interview: Briefly describe a project you are involved in
DOA从一维阵列传感说起
JS中对作用域链的理解(查找变量)
Debian侵犯Rust商标,妥协改名还是会得到豁免?
How to use the go language standard library fmt package
NodeJs, all kinds of path
Mapped Statements collection does not contain value for的解决方法