当前位置:网站首页>抽象类与接口
抽象类与接口
2022-07-29 05:09:00 【小洪正在努力】
抽象类,抽象方法,接口的总结
| 抽象方法 | 抽象类 | 接口 |
|---|---|---|
| 抽象方法没有方法体,交给子类实现 | 抽象类不一定有静态方法,有静态方法的一定是抽象类。 | JDK1.8之前:接口里只能写方法的声明,而不能写方法的具体实现 JDK1.8之后:接口可以对方法的声明写具体实现。 |
| 抽象方法修饰符 不能是private,final,static(因为需要子类实现)。 | 不能被实例化,只能被继承。 | 接口中没有构造方法,不能被实例化。 |
| 抽象方法必须定义在抽象类或接口中。 | 抽象类的子类可以不实现所有的抽象方法,但也必须作为抽象类。(抽象派生类) | 接口只能继承接口,不能继承类,接口支持多继承。 |
| 无 | 抽象类的构造器不能定义为私有。(子类构造方法会调用父类构造方法。) | 接口中定义的成员变量默认是public static final修饰的静态常量 |
| 无 | 抽象类不能定义为final,final (修饰的类不能被继承)。 | 接口中的方法: 默认是public abstract 修饰的抽象方法。 JDK1.8前不能有静态方法,不能有普通方法。 JDK1.8后可以有静态方法,可以有普通方法。 |
| 无 | 抽象类可以实现接口,可以继承具体类,也可以继承抽象类。 | 接口中定义的内部类,默认是public static 修饰的静态内部类。 |
| 无 | 抽象类中有普通方法,也可以有静态方法。 | 无 |
抽象类和接口的异同:
| 相同点 | 不同点 |
|---|---|
| ① 抽象类和接口都不能被实例化 | ① 抽象类有构造方法,接口没有构造方法 |
| ② 抽象类和接口都可以定义抽象方法,子类/实现类必须覆写这些抽象方法 | ② 抽象类可以包含普通方法,接口中只能是public abstract修饰抽象方法(Java8之后可以) |
| 无 | ③ 抽象类只能单继承,接口可以多继承 |
| 无 | ④ 抽象类可以定义各种类型的成员变量,接口中只能是public static final修饰的静态常量 |
| 无 | ⑤抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。 |
| 无 | ⑥抽象类中可以包含静态方法,接口中不能包含静态方法。 |
感谢某位不知名博主的总结,在本博客中借鉴了很多对方的总结知识点:传送门
边栏推荐
- AI应用第一课:C语言支付宝刷脸登录
- JD cloud and Forrester consulting released a hybrid cloud report that cloud Nativity has become a new engine driving industrial development
- Live broadcast Preview: integration of JD cloud Devops and jfrog product library
- 阿里云架构师梁旭:MES on 云盒,助力客户快速构建数字工厂
- The latest tank battle 2022 full development notes-1
- Best practices of JD cloud Distributed Link Tracking in financial scenarios
- Cryengine Technology
- 容器安全开源检测工具--问脉 VeinMind(镜像后门、恶意样本、敏感信息、弱口令等)
- 题解:在一个排序数组中查找元素第一个和最后一个的位置 (个人笔记)
- Li Yan, CEO of parallel cloud: cloudxr, opens the channel to the metauniverse
猜你喜欢

来!看排名一年上升16位的ClickHouse,如何在京东落地实践

OCCT学习002-----环境搭建

Database course design of online assistant teaching platform for high school chemistry

英伟达周锡健:设计到数字营销的最后一公里

365天挑战LeetCode1000题——Day 042 数组序号转换 + 相对名次 离散化处理

200 多家 ISV 入驻!阿里云计算巢发布一周年

直播预告|如何通过“智能边缘安全”提升企业免疫力?

C 语言手写 QQ-AI 版

抢先预约 | 阿里云无影云应用线上发布会预约开启

牛客网编程题—【WY22 Fibonacci数列】和【替换空格】详解
随机推荐
AI应用第一课:C语言支付宝刷脸登录
C语言 一级指针
容器安全开源检测工具--问脉 VeinMind(镜像后门、恶意样本、敏感信息、弱口令等)
What is_ GLIBCXX_ VISIBILITY(default)
365 day challenge leetcode 1000 questions - day 041 two point search completion anniversary + nth magic number + online election
Unity3d - the object is too far away to see
OCCT学习003-----MFC单文档工程
365天挑战LeetCode1000题——Day 039 完全二叉树插入器 + 寻找峰值 II + 快照数组
During the appointment, the 2022 JD cloud industrial integration new product launch was launched online
一维数组练习
京东云金秋上云特惠进行中!扫码参与活动
GPIO的输入输出详解
Is Huatai Securities an AA level securities company? How about this company? Is it safe to open an account?
Solution: find the position of the first and last element in a sorted array (personal notes)
数据泄漏、删除事件频发,企业应如何构建安全防线?
CryEngine3 调试Shader方法
来!看排名一年上升16位的ClickHouse,如何在京东落地实践
QT series - Installation
京东云分布式链路追踪在金融场景的最佳实践
【C语言系列】—三种方法模拟实现strlen库函数的方法