当前位置: 首页 > news >正文

抽象类基础知识

抽象类

  • 1.概念
  • 2.语法
  • 3.特性
  • 4.作用
  • 5.运用

1.概念

如果一个类中没有包含足够的信息来描绘一个具体的对象,
这样的类就是抽象类

2.语法

一个类如果被 abstract 修饰称为抽象类,
抽象类中被 abstract 修饰的方法称为抽象方法,
抽象方法不用给出具体的实现体
抽象类也是类,内部可以包含普通方法和属性,甚至构造方法

// 抽象类:被abstract修饰的类
public abstract class Shape {// 抽象方法:被abstract修饰的方法,没有方法体abstract public void draw();abstract void calcArea();// 抽象类也是类,也可以增加普通方法和属性public double getArea(){return area;}protected double area;    // 面积
}

3.特性

  1. 抽象类不能直接实例化对象
  2. 抽象方法不能是 private 的
  3. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
  4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,
    否则子类也是抽象类,必须要使用 abstract 修饰
  5. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类
  6. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

4.作用

抽象类相当于多了一重编译器的校验

5.运用

public class Cycle extends Shape{@Overridepublic void draw() {System.out.println("画一个圆....");}
}
public class Flower extends Shape{@Overridepublic void draw() {System.out.println("画一个花....");}
}
public class Rect extends Shape{@Overridepublic void draw() {System.out.println("画一个矩形....");}
}
public abstract class Shape {public abstract void draw();
}
public class Test {public static void drawMap(Shape shape) {shape.draw();}public static void main(String[] args) {drawMap(new Cycle());drawMap(new Rect());drawMap(new Flower());}
}
http://www.xdnf.cn/news/1096039.html

相关文章:

  • 如何选择合适的ai降重工具?七个实用的ai查重网站
  • 【会员专享数据】2013-2024年我国省市县三级逐日SO₂数值数据(Shp/Excel格式)
  • 告别繁琐:API全生命周期管理的新范式——apiSQL
  • 调用京东API接口时,如果超过了调用频率限制,应该如何处理?【项目经验分享】
  • Django+DRF 实战:自定义异常处理流程
  • FeatherScan v4.0 – 适用于Linux的全自动内网信息收集工具
  • 快速搭建服务器,fetch请求从服务器获取数据
  • linux网络编程之读缓冲区设计
  • 系统性部署系统母盘【rhel7和rhel9】
  • 腾讯云分为几个区域
  • 2025社交电商新风口:推客小程序的商业逻辑与技术实现
  • 以太网基础⑤UDP 协议原理与 FPGA 实现
  • 《信号与系统》学习笔记——第八章(补充部分)
  • 分库分表之实战-sharding-JDBC分库分表执行流程原理剖析
  • 【算法笔记】6.LeetCode-Hot100-链表专项
  • VTK 9.0中的屏幕空间环境光遮挡
  • 【Android】在平板上实现Rs485的数据通讯
  • 【Docker基础】Docker容器与网络关联命令使用指南:深入理解容器网络连接
  • 基于Catboost算法的茶叶数据分析及价格预测系统的设计与实现
  • AI技术通过智能缺陷检测正在深度重构多个行业的生产模式、质量管理体系和人才结构,其影响已超越单纯的技术升级,正在引发系统性变革。
  • 可视化DIY小程序工具!开源拖拽式源码系统,自由搭建,完整的源代码包分享
  • 3D lidar目标跟踪
  • 机器学习:反向神经元传播公式推导
  • 网安-解决pikachu-rce乱码问题
  • 企业使用银河麒麟系统下载vscode显示界面不全
  • swift开发,关于应用、页面、视图的生命周期
  • WIFI协议全解析05:WiFi的安全机制:IoT设备如何实现安全连接?
  • 【数据结构】时间复杂度和空间复杂度
  • 解析LLM层裁剪:Qwen实战指南
  • XMAPP MySQL 启动后自动停止