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

JAVA中的抽象类和抽象方法

在面向对象编程中,“抽象”代表着对事物共性的提取。很多时候,一个父类定义了通用的行为规范,但部分行为并不能直接确定,需要交由子类去实现。为此,Java 提供了 抽象类(abstract class)抽象方法(abstract method) 机制,用于在类层次结构中建立标准与约束。

1.抽象类(Abstract Class)

1.1 定义

抽象类是使用 abstract 关键字修饰的类,它 不能被直接实例化
它通常用来作为父类,为子类提供统一的设计规范和部分默认实现。

public abstract class 抽象类名{}

1.2 特点

  1. 不能实例化new Employee() 会报错。

  2. 可以包含:

    • 成员变量
    • 普通方法(已实现)
    • 抽象方法(未实现)
    • 构造方法(供子类调用)
  3. 继承要求:子类必须实现抽象类中的所有抽象方法,否则子类也必须声明为抽象类

// 抽象类:定义了所有员工的基本行为和数据
public abstract class Employee {private String name;// 构造函数,用于子类初始化父类成员public Employee(String name) {this.name = name;}// 具体方法:所有员工都能执行public void displayInfo() {System.out.println("Employee Name: " + this.name);}// 抽象方法(见下文):薪水的计算方式必须由具体的子类定义public abstract double calculateSalary();
}

2. 抽象方法(Abstract Method)

2.1 定义

抽象方法是用 abstract 关键字修饰的方法,只有方法声明,没有方法体。其目的在于强制子类提供该方法的具体实现

public abstact 返回值类型 方法名(参数列表);

2.2 子类实现

当一个类继承了包含抽象方法的抽象类,必须重写该抽象方法:

public abstract class Shape {// 抽象方法public abstract double area();
}
public class Circle extends Shape {private double radius;public Circle(double radius) {this.radius = radius;}@Overridepublic double area() {return Math.PI * radius * radius;}
}

2.3 注意事项

  • 抽象类中可以没有抽象方法,但如果有抽象方法,该类必须声明为抽象类

  • 抽象类可以有构造方法,主要用于子类初始化时调用。

  • 抽象方法不能使用 static、final、private 修饰(因为它们和多态特性冲突)。

      private 阻止子类访问和实现。static 意味着方法属于类本身而非对象,与抽象方法的“待实现”性质冲突。final 阻止子类重写方法,与抽象方法的“必须实现”性质冲突。
    
  • 一个类只能单继承一个抽象类,但可以实现多个接口(抽象类和接口结合使用更灵活)。

http://www.dtcms.com/a/424876.html

相关文章:

  • 抄袭网站设计网站关键词优化推广
  • 软件下载网站源码上海网站推广哪家好
  • 网站字体标准自己制作网页怎么制作的
  • 企业官方网站管理制度成全视频免费观看在线看电视剧
  • 无锡模板网站设计公司云设计工具
  • 企业做网站要注意些什么问题长沙网站设计工作室
  • 网站建设 关于我们网络编辑的工作内容
  • 免费创建app网站百科网站推广
  • 江苏建设人才网网站wordpress 外贸
  • 做logo好的网站汕头专业的免费建站
  • MySQL InnoDB存储引擎表的逻辑存储结构实现原理详细介绍
  • 【python】条件与循环语法详解
  • C++函数模板详解
  • ros_control 中 hardware_interface 教程
  • 做视频网站教程wordpress页面添加描述
  • 青岛专业设计网站公司怎样做关键词排名优化
  • Spring 统一功能处理 - 拦截器与适配器
  • 浙江省建设厅干部学校门户网站vi设计与网站建设招标文件
  • 网站群建设方案黄金网站大全免费2023
  • C++指针与引用详解
  • 国内做免费视频网站哪些网站可以做淘宝店招
  • 生物化学Learning Track(9)核酸的结构和功能
  • 绿园区建设局网站惠州seo报价
  • 建设360导航网站的目的是什么意思网站推广的建议
  • 软考中级习题与解答——第十四章_UML建模(1)
  • 网易做相册的网站建站之星建出来的网站如何上传
  • 网站asp设计作品硬件开发平台是指什么
  • 深圳做网站报价高校建设网站的特色
  • 学习日报 20250929|缓存击穿及其解决方案
  • Dify 源码本地部署启动及完整步骤解析