类特性(抽象类)

简介: 类特性(抽象类)

抽象类与抽象方法

  • 什么是抽象类:

随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一 般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父 类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

  • 用abstract关键字来修饰一个类,这个类叫做抽象类。
  • 用abstract来修饰一个方法,该方法叫做抽象方法。
  • 抽象方法:只有方法的声明,没有方法的实现。以分号结束: 比如:public abstract void talk();
  • 含有抽象方法的类必须被声明为抽象类。
  • 抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重 写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。
  • 不能用abstract修饰变量、代码块、构造器;
  • 不能用abstract修饰私有方法、静态方法、final的方法、final的类。
抽象类举例
class void A {
  abstract void m1(); 
  public void m2() {
  System.out.println("A类中定义的m2方法");
  }
}
class B extends A {
  void m1() {
  System.out.println("B类中定义的m1方法");
  }
}
public class Test {
  public static void main(String args[]) {
  A a = new B();
  a.m1();
  a.m2();
  }
}

作用:

抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提 供具体实现的对象的类。

抽象类的特点:

A:抽象类和抽象方法必须用abstract关键字修饰

B:抽象类中不一定有抽象方法,但又抽象方法的类一定是抽象类

C:抽象类不能实例化 因为它不是具体的。抽象类又构造方法,但是不能实例化?构造方法的作用是什么呢?用于子类访问父类数据的初始化

D:抽象的子类

a:抽象类的子类是一个抽象类

b:重写所有的抽象方法,这个时候子类是是一个具体的类

抽象类的实例化其实是靠具体的子类实现的是多态的方式

Animal a = new Cat();

抽象类的成员特点:

成员变量:既可以是变量,也可以是常量

构造方法:有用于子类访问父类数据的初始化

成员方法:既可以是抽象的,也可以是非抽象的。

抽象类的成员方法特性:

A:抽象方法强制要求子类做的事情

B:非抽象方法子类继承的事情提高代码复用性

相关文章
|
3月前
|
弹性计算 运维 资源调度
重构核心业务稳定性:阿里云飞天企业版弹性计算RAS体系
在数字化时代,云平台已从“IT资源池”升级为企业业务的关键底座。核心交易、生产调度、数据平台、在线服务一旦发生非计划中断,影响的不只是系统可用性,更可能带来订单损失、履约中断与品牌风险。有研究指出,业务宕机的损失会以“分钟”为单位快速放大,稳定性因此成为企业面向客户与市场交付服务的“确定性能力”。
136 0
|
4月前
|
数据采集 监控 数据可视化
数据治理工具哪家强?2025 年国内优质厂商及核心工具推荐
2025年,数据治理工具向智能化、全链路协同升级。瓴羊Dataphin、WeData、DataArts Studio等13大工具脱颖而出,覆盖数据集成、建模、质量管控与资产化服务,助力企业打破数据孤岛,实现高效治理与业务创新融合。
|
8月前
|
存储 缓存 中间件
《金融对账系统雪崩隐患的深度复盘与架构重生》
本文复盘了金融级支付对账系统因分布式缓存设计缺陷引发的隐性危机:系统上线后,对账高峰时段出现节点“假死”、数据不一致问题,却无明显资源耗尽迹象,且问题间歇性发生。排查发现,高并发下任务调度框架返回异常商户ID,生成无效缓存Key,叠加缓存客户端“批量合并请求”与“无限重试”设计,导致线程池阻塞;节点恢复后又因任务状态未同步,引发数据重复处理或遗漏。通过全链路数据校验、缓存交互优化(分段查询+降级熔断)、分布式锁与全局状态同步,系统问题得以解决,最终提炼出分布式系统开发的四大核心原则,为后端架构设计提供参考。
291 33
|
人工智能 机器人 API
阿里云百炼xWaytoAGI共学课 DAY2 - 更好用的文本知识库应用跟学,快速上手阿里云百炼
本课程是阿里云百炼平台的第二天课程内容,旨在帮助用户了解如何通过阿里云百炼构建和发布自己的AI应用。介绍了如何利用大模型和智能体应用来创建具备强大语言理解和生成能力的AI助手,并通过不同的渠道(如网站、钉钉、微信公众号等)发布这些应用。
2253 8
|
存储 算法 算法框架/工具
基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序
该文档介绍了在一个FPGA项目中使用HSV色彩模型提取图像深度信息的过程。通过将RGB图像转换为HSV,然后利用明度与深度的非线性映射估计深度。软件版本为Vivado 2019.2和MATLAB 2022a。算法在MATLAB中进行了对比测试,并在FPGA上实现了优化,包括流水线并行处理和查找表技术。提供的Verilog代码段展示了RGB到灰度的转换。实验结果和核心程序的图片未显示。
|
存储 SQL Oracle
AWR,即自动工作负荷资料档案库
【10月更文挑战第16天】AWR,即自动工作负荷资料档案库
514 3
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
1305 3
|
存储 运维 监控
机器的coredump文件过多处理
【10月更文挑战第1天】
787 4
|
Java Android开发 UED
🧠Android多线程与异步编程实战!告别卡顿,让应用响应如丝般顺滑!🧵
在Android开发中,为应对复杂应用场景和繁重计算任务,多线程与异步编程成为保证UI流畅性的关键。本文将介绍Android中的多线程基础,包括Thread、Handler、Looper、AsyncTask及ExecutorService等,并通过示例代码展示其实用性。AsyncTask适用于简单后台操作,而ExecutorService则能更好地管理复杂并发任务。合理运用这些技术,可显著提升应用性能和用户体验,避免内存泄漏和线程安全问题,确保UI更新顺畅。
546 5
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的深度学习模型:原理与应用
探索机器学习中的深度学习模型:原理与应用
416 0