Java面向对象-抽象类和抽象方法

在这里插入图片描述


Java面向对象-抽象类和抽象方法

    • 1、代码案例展示
    • 2、抽象类和抽象方法的关系:

1、代码案例展示

1、在一个类中会有一类方法,无需重写,直接使用
2、在一个类中会有一类方法,会对这个方法进行重写
3、一个方法的方法体去掉,然后被abstract修饰,那么这个方法就变成了一个抽象方法

在这里插入图片描述
4、一个类中如果有抽象方法,那么这个类也要变成一个抽象类
5、一个抽象类中可以有0个或者n个抽象方法
6、抽象类可以被其他类继承
7、一个类继承一个抽象类,那么这个类可以变成抽象类
8、一般子类不会加abstract修饰,一般让子类重写父类中的抽象方法
9、子类继承抽象类,就必须全部的抽象方法
10、子类如果没有重写父类的全部抽象方法,那么子类可以变成一个抽象类

在这里插入图片描述
11、创建抽象类的对象:抽象类不可以创建对象
在这里插入图片描述
12、创建子类对象
在这里插入图片描述
13、多态的写法
在这里插入图片描述

package com.msb_abstract;//4、一个类中如果有抽象方法,那么这个类也要变成一个抽象类
//5、一个抽象类中可以有0个或者n个抽象方法
public abstract class Person {//1、在一个类中会有一类方法,无需重写,直接使用public void eat() {System.out.println("eat");}//2、在一个类中有一类方法,会对这个方法进行重写//3、一个方法的方法体去掉,然后被abstract修饰,那么这个方法就变成了一个抽象方法public abstract void say();public abstract void sleep();
}//6、抽象类可以被其他类继承
//7、一个类继承一个抽象类,那么这个类可以变成抽象类
//8、一般子类不会加abstract修饰一般让子类重写父类中的抽象方法
//9、子类继承抽象类,就必须全部的抽象方法
//10、子类如果没有重写父类的全部抽象方法,那么子类可以变成一个抽象类。
class Student extends Person {@Overridepublic void say() {System.out.println("say...");}@Overridepublic void sleep() {System.out.println("sleep...");}
}class Demo {public static void main(String[] args) {//11、创建抽象类的对象:抽象类不可以创建对象//Person p = new Person();//12、创建子类对象Student st = new Student();st.say();st.sleep();//13、多态的写法Person p = new Student();st.say();st.sleep();}
}

2、抽象类和抽象方法的关系:

一个抽象类中可以有0个或者n个抽象方法
抽象类的作用:
在抽象类中定义抽象方法,目的是为子类提供一个通用的模板,子类可以在模板的基础上进行开发,先重写父类的抽象方法,然后可以扩展子类自己的内容,抽象类设计避免了子类设计的随意性,通过抽象类,子类的设计变得更加严格,进行某些程度上的限制,使子类更加的通用。

面试题:
1、抽象类不能创建对象,那么抽象类中是否有构造器?
抽象类中一定有构造器,作用:给子类对象初始化对象的时候要先super调用父类的构造器。
2、抽象类是否可以被final修饰?
不能被final修饰,因为抽象类设计的初衷就是给子类继承使用的,要是被final修饰了,就不存在继承了,就没有子类了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【文心智能体分享】日记周报助手

引言 在繁忙的实习生活中,你是否曾为如何整理日常的工作日志、周报、月报而烦恼?现在,我们为你带来了一个全新的智能体——“日记周报助手”,它将成为你实习过程中的得力助手,帮你轻松整理实习日志,让你的…

mysql 中的锁

一.锁的介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除了传统的计算资源(cpu,ram,i/o)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性…

【C#】IndexOf的使用

1. 在ObservableCollection<T> 类中使用&#xff1a; ObservableCollection<T> 类是 C# 中的一个集合类&#xff0c;它继承自 Collection<T> 并实现了 INotifyCollectionChanged 接口&#xff0c;使得集合的更改可以自动通知给任何监听它的界面元素。这使得…

初见 Rollup 的十大常见问题

文章目录 初见 Rollup 的十大常见问题1. 超神奇的 Rollup 英文解释&#xff01;2. 为什么 ESM 要比 CommonJS 要好呢&#xff1f;3. 什么是 tree-shaking ?4. 如何使用 Rollup 处理 CommonJS&#xff1f;5. 为什么 node-resolve 不是一个内置功能&#xff1f;6. 为什么在进行代…

如何警用root用户登录ssh

使用tail指令&#xff0c;可以动态查看日志信息。 &#xff08;tail -f /var/log/secure或messages&#xff09; 使用>符号&#xff0c;可以清空日志内容&#xff0c;不删除文件本身。 禁用root用户为以下步骤&#xff1a; 首先使用useradd创建用户&#xff08;可以修改为其…

STM32HAL-最简单的时间片论法

目录 概述 一、开发环境 二、STM32CubeMx配置 三、编码 四、运行结果 五、总结 概述 本文章使用最简单的写法时间片论法框架,非常适合移植各类型单片机,特别是资源少的芯片上。接下来将在stm32单片机上实现,只需占用1个定时器作为tick即可。(按键框架+时间片论法)…

20240613每日前端--------聊聊根据面试简历面试的一位高级前端开发工程师

项目经验 封装了通用的表单组件&#xff0c;支持多表单结构&#xff0c;如&#xff1a;富文本编辑器、文件上传等封装了 Echarts 图表组件&#xff0c;可以展示各种报表数据封装了通用的表格组件&#xff0c;支持多条件搜索及分页功能封装了 svg 图标上传组件&#xff0c;将下…

【数据结构之B树的讲解】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

【乐吾乐2D可视化组态编辑器】开关、阀门、报警状态切换

开关状态 开关的断开与闭合&#xff1a;将电力组件的“开”与“关”2个组件重叠在一起&#xff0c;右键选择“组合为状态”&#xff0c;属性面板中就可以任意切换状态。 视频教程&#xff1a;开关阀门多状态控制 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.co…

【python】python指南(三):使用正则表达式re提取文本中的http链接

一、引言 对于算法工程师来说&#xff0c;语言从来都不是关键&#xff0c;关键是快速学习以及解决问题的能力。大学的时候参加ACM/ICPC一直使用的是C语言&#xff0c;实习的时候做一个算法策略后台用的是php&#xff0c;毕业后做策略算法开发&#xff0c;因为要用spark&#x…

开发指南030-常用的工具网站

1、下载jdk https://mirrors.huaweicloud.com/java/jdk/ 2、在线解析二维码 http://cdn.malu.me/qrdecode/ 3、Properties和Yaml格式互转 https://www.toyaml.com/index.html 4、生成banner https://devops.datenkollektiv.de/banner.txt/index.html 5、二维码生成器 http…

js编程环境配置-vscode

1、安装Node.js 官网下载 选择适合你Windows系统架构&#xff08;32位或64位&#xff09;的安装包。windows系统选择“Windows Installer (.msi)”或“Windows Binary (.exe)”进行下载。 双击下载的.msi或.exe文件进行安装。 在cmd中输入node --version和npm --version&…

MySQL为root用户添加IP地址连接权限

需求 部署在本地的MySQL数据库&#xff0c;默认主机是localhost&#xff0c;这样局域网内的其他电脑就会连接不到&#xff0c;如果想要其他的电脑也可以访问的话&#xff0c;需要将主机名设置为本机IP。 解决方案 MySQL语句&#xff1a; GRANT ALL PRIVILEGES ON *.* TO 用户…

numpy数组transpose方法的基本原理

背景&#xff1a;记录一下numpy数组维度顺序操作 一、具体示例 transpose方法用于交换数组的轴&#xff0c;改变数组的维度顺序。方法的参数是一个代表新轴顺序的元组。 假设你有一个三维数组&#xff0c;其形状是 (a, b, c)&#xff0c;即有 a 个块&#xff0c;每个块中有 b…

2-4 基于matlab的洛伦兹系统分岔图实现

基于matlab的洛伦兹系统分岔图实现。通过2种方法&#xff0c;最大值法&#xff0c;庞加莱截面法进行输出分岔图。可直接运行。 2-4 洛伦兹系统分岔图 最大值法 - 小红书 (xiaohongshu.com)

前端常用排序算法

1.时间复杂度 n*n&#xff1a;冒泡排序、选择排序、插入排序nlogn&#xff1a;快速排序、归并排序、堆排序 2.冒泡排序 定义&#xff1a;每次都是相邻元素比较&#xff0c;第一个元素比第二个元素大则交换位置直到最后一个元素为最大&#xff0c;继续循环代码实现&#xff1…

圆锥曲线的分类

有一个圆锥 C C C&#xff0c;以及一个不过圆锥顶点的平面 Q Q Q。用解析几何证明&#xff1a;当平面平行于圆锥的轴时&#xff0c;交线是双曲线&#xff1b;当平面平行于圆锥的母线时&#xff0c;交线是抛物线&#xff1b;其它情况下&#xff0c;交线为椭圆&#xff08;包括圆…

Unity Maximum Allowed Timestep的说明

Maximum Allowed Timestep的说明 关于Maximum Allowed Timestep这个配置的说明&#xff0c;Unity有一份官方的说明。 Time-maximumDeltaTime - Unity 脚本 API 结合Unity的函数执行顺序&#xff0c;我们可以简单理解为&#xff1a; FixedUpdate在1次Update可能会执行N次&am…

如何平衡安全访问和办公效率?零信任安全×统一身份才是解决之道

在远程办公、混合办公、跨团队协作日益频繁的今天&#xff0c;企业的业务开展需要支持多种访问接入的需求和场景。如何平衡企业数据的安全访问和办公效率将成为挑战。 在业务的多种接入场景上&#xff0c;企业引入零信任&#xff08;Zero Trust&#xff0c;ZT&#xff09;产品…

ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(4)

接前一篇文章:ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(3) 上一回讲到,笔者准备第二天围绕信号强度展开进一步测试。实际上没等到第二天,笔者在当天下午下班时间(18点)以后就进行了相关测试(不过测试倒并不是完全针对于信号强…