网站首页 > java教程 正文
在Java多态中,多态的实现方式有三种,其中一种实现方法就是抽象类和抽象方法,今天小编将为大家来大数据编程入门:Java抽象类。
一、Java抽象类概念
在面向对象的概念中,所有的对象都是用类来描述的,相反,并不是所有的类都用来描述对象。如果一个类包含的信息不足以描述一个特定的对象,那么这个类就是一个抽象类。
抽象类不能实例化对象,但它们还有其他函数。成员变量、成员方法和构造方法的访问方法与普通类相同。
因为抽象类不能实例化对象,所以必须先继承抽象类,然后才能使用它们。因此,我们通常在设计阶段决定是否设计抽象类。
父类包含子类集合的常用方法,但不能使用这些方法,因为父类本身是抽象的。
在Java中,抽象类表示继承关系。一个类只能继承一个抽象类,而一个类可以实现多个接口。
二、抽象类
Abstract class类用于定义Java语言中的抽象类,示例如下:
请注意,Employee类没有什么不同,虽然此类是抽象的,但它仍然有三个成员变量、七个成员方法和一个构造函数。现在,如果您尝试以下示例:
如果尝试AbstractDemo类时,会产生以下错误:
三、继承抽象类
可以通过以下方式继承Employee类的属性:
虽然我们不能实例化Employee类对象,但是如果实例化一个Salary类对象,该对象将从Employee类继承七个成员方法,通过该方法可以设置或获取三个成员变量。
运行结果:
四、抽象方法
如果要设计一个包含特殊成员方法的类,而该方法的实现由其子类决定,则可以在父类中将该方法声明为抽象方法。
Abstract关键字还可以用来声明抽象方法,这些方法只包含一个方法名,没有方法体。
抽象方法未定义。方法名后面直接跟一个分号,而不是大括号。
声明抽象方法会导致两件事:
A. 如果类包含抽象方法,则该类必须是抽象的。
B. 任何子类都必须重写父类的抽象方法或声明自己为抽象类。
继承抽象方法的子类必须重写该方法。否则,子类也必须声明为抽象类。最后,必须有子类来实现抽象方法,否则,对象不能从原始父类实例化到最终的子类。
如果Salary类继承Employee类,则必须实现computepay()方法:
五、抽象类总结规定
A. 抽象类不能实例化(初学者容易犯的错误)。如果它被实例化,将报告一个错误,并且编译无法通过。只有抽象类的非抽象子类才能创建对象。
B. 抽象类不一定包含抽象方法,但具有抽象方法的类必须是抽象类。
C. 抽象类中的抽象方法只是一个声明,不包含方法体,即不给出方法的具体实现,即方法的具体函数。
D. 构造方法、类方法(用static修改的方法)不能声明为抽象方法。
E. 抽象类的子类必须给出抽象类中抽象方法的具体实现,除非子类也是抽象类。
猜你喜欢
- 2024-10-04 “全栈2019”Java第九十六章:抽象局部内部类详解
- 2024-10-04 JAVA笔记(十)面向对象——接口和抽象类
- 2024-10-04 Java抽象类与接口的区别(java抽象类与接口的区别是什么)
- 2024-10-04 Java接口和抽象类有什么共同点和区别?
- 2024-10-04 Java之路-08抽象类与接口(java抽象类入门教程)
- 2024-10-04 java基础——抽象类和接口(java抽象类和接口的使用场景)
- 2024-10-04 Java学习:基础(抽象类、模板方法模式、接口)
- 2024-10-04 Java学习:抽象方法和抽象类的使用
- 2024-10-04 Java中的抽象类与接口(java抽象类和接口的定义)
- 2024-10-04 java基础学习——abstract抽象类(java 抽象)
你 发表评论:
欢迎- 06-15Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 06-15推荐一款超棒的SpringCloud 脚手架项目
- 06-15IDEA将项目打包成jar包(idea打包普通java项目)
- 06-15Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 06-15记录Dockerfile将jar包构建成部署所需的镜像
- 06-15项目基础部署汇总八---linux下xxl-job安装
- 06-15Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 06-15终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 最近发表
-
- Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 推荐一款超棒的SpringCloud 脚手架项目
- IDEA将项目打包成jar包(idea打包普通java项目)
- Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 记录Dockerfile将jar包构建成部署所需的镜像
- 项目基础部署汇总八---linux下xxl-job安装
- Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 如何将本地JAR文件添加到Maven项目中
- Java 类隔离应用:多 Jar 包支持(java接口隔离原则)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)