abstract 抽象方法、类

简介: 1.抽象方法 仅仅是声明,并不给出定义的方法叫抽象方法。形如 abstract void fun(); 2.抽象类 cpp中,包含纯虚函数的类叫抽象类。它没有"抽象"对应的关键字。 如果一个类中有抽象方法,该类必须为抽象类。 如果一个类没中有抽象方法,该类也可以为抽象类。考虑这种情况:有一个类,让其包含任何抽象方法都显得没有实际意义,而且我们也想要阻止产生这个类的任何对象,那么这

1.抽象方法

仅仅是声明,并不给出定义的方法叫抽象方法。形如 abstract void fun();

2.抽象类

cpp中,包含纯虚函数的类叫抽象类。它没有"抽象"对应的关键字。

如果一个类中有抽象方法,该类必须为抽象类

如果一个类没中有抽象方法,该类也可以为抽象类。考虑这种情况:有一个类,让其包含任何抽象方法都显得没有实际意义,而且我们也想要阻止产生这个类的任何对象,那么这样做就很有用了。

抽象类不允许实例化。
一个类继承一个抽象类,有两种情况:
1.为所有抽象方法写出定义。

2.没有为所有抽象方法写出定义。此时子类也是抽象类,必须加上abstract关键字。


3.与接口的对比

语法对比:
抽象类:不能多继承;既有抽象的方法也有给出实现的方法。
接口:可以多继承;只能声明方法,不能实现方法(java 8中可以给出默认实现)。字段只能是 final static类型。

适用场景对比:
抽象类:一般用作基类。多个子类间既有相同的行为也有不同的行为。相同的行为可在抽象类中作为普通方法实现,不同的行为可在抽象类中定义为抽象方法。
接口:多个类族都能用到的公用方法可以在这里声明。java类库中的 Comparable , Cloneable 都是接口。

结合接口与抽象类的各自特征,就有了   默认适配器模式

4.抽象类中的this

访问字段时找的是抽象类,因为字段不能@Override。
访问方法时分情况讨论,若没有被重写,访问的是抽象类的方法,若被重写,访问的是子类的方法。
所以看下例子:
调试时可以清晰地看到子类继承了抽象类的字段。

图4-1  子类会继承父类的私有字段



目录
相关文章
|
Shell 网络安全 开发工具
手把手教你配置Git客户端上传代码至Gitlab仓库
手把手教你配置Git客户端上传代码至Gitlab仓库
486 1
手把手教你配置Git客户端上传代码至Gitlab仓库
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 算法
探索支持向量机(SVM)的奥秘:从理论到实践
探索支持向量机(SVM)的奥秘:从理论到实践
|
消息中间件 缓存 NoSQL
Redis 高并发竞争 key ,如何解决这个难点?
本文主要探讨 Redis 在高并发场景下的并发竞争 Key 问题,以及较为常用的两种解决方案(分布式锁+时间戳、利用消息队列)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Redis 高并发竞争 key ,如何解决这个难点?
|
关系型数据库 MySQL Apache
Discuz贴吧建站的搭建及维护(windows系统)
Discuz贴吧建站的搭建及维护(windows系统)
432 0
|
机器学习/深度学习 数据采集 人工智能
一文看尽LLM对齐技术:RLHF、RLAIF、PPO、DPO……
【8月更文挑战第27天】本文全面回顾了近期大型语言模型(LLMs)领域内提升模型与人类价值观一致性的重要进展与挑战。尽管自监督学习及大规模预训练等技术推动了LLMs的快速发展,但如何避免生成不当内容仍是难题。文中系统地将现有研究分为奖励模型、反馈机制、强化学习策略及优化方法四大主题,并深入探讨各技术路径的创新点与局限性,如RLHF、RLAIF等方法。旨在为读者提供清晰的领域概览,促进未来研究发展。[论文链接](https://arxiv.org/pdf/2407.16216)
687 3
|
关系型数据库 MySQL 数据库连接
UiPath 连接 Mysql 报错: 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
UiPath 连接 Mysql 报错: 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
601 0
|
Java
SpringBoot 配置多数据源
SpringBoot 配置多数据源
188 0
阿里云备案流程、操作步骤及所需时间图文详解
阿里云网站一共经过五步骤,先提交材料到阿里云初审,阿里云初审通过后提交到管局,用户进行工信部短信核验,最后等待管局审核即可。整个过程快的话2天即可搞定,慢的话需要20多天左右
2863 0
阿里云备案流程、操作步骤及所需时间图文详解
uView throttle & debounce节流防抖
uView throttle & debounce节流防抖
295 0