JavaSE - 面向对象编程03

embedded/2024/9/23 3:16:44/

01 多态

01_01 认识多态

01_02 多态的好处和缺点

【1】好处:① 可以解耦合,扩展性更强,父类引用指向的子类对象可以随时切换,而后面的逻辑代码并不需要更改。

                    ② 使用父类引用可以作为方法的形参或返回类型来接收一切子类对象。

【2】缺点:父类对象是无法调用子类独有的方法?如何解决:对父类引用进行强制类型转换,且在转换之前使用instanceof关键字判断父类引用指向的对象是什么类型的再进行转换。

02 final关键字

02_01 认识final

【补充】:final修饰变量时又分为修饰局部变量和成员变量:

                  ① 局部变量:被final修饰的局部变量只能被赋值一次,我们在定义方法的参数时也可以将参数定义成被final修饰的变量。

                   ② 类变量:修饰符 + static + final xxx = xxx; 

                   ③ 实例变量:修饰符 + final xxx = xxx; 使用得很少,因为如此定义表示这个实例变量每个对象中都有一份,且值是固定的,如此效果还                           不如直接定义成被final修饰的类变量。

02_02 补充知识:常量详解

【补充】:进一步解释使用常量记录系统配置信息的好处:可读性好是因为我们要去使用这些信息时直接用常量名就可以,而常量名通常以见名知意的约定创建,例如CLASSROOM我们一下就能明白这个常量值代表什么。可维护性好是因为当我们想修改某个常量值时直接修改即可,此时代码中使用常量值的地方,常量值的内容会自动发生变化,而不需要我们一个个手动修改。

03 抽象类

03_01 认识抽象类

03_02 使用抽象类的好处

03_03 应用:模板方法设计模式

04 接口

04_01 接口概述

 

04_02 接口的综合案例

提示:学生类,学生操作类,接口,操作类1,操作类2;在学生操作类的操作方法中使用接口引用调用操作类1/2的相关方法。

04_03 其他:JDK8开始,接口中新增的三中方法

04_04 其他:接口的多继承、使用接口的注意事项(了解)

 


http://www.ppmy.cn/embedded/113488.html

相关文章

CTFHub技能树-信息泄露-HG泄漏

目录 漏洞产生原因 解题过程 当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。 漏洞产生原因 Mercurial(hg)是一种分布式版本控制系统,它与Git类似也可以用于管…

微信小程序使用 ==== 粘性布局

目录 Chrome杀了个回马枪 position:sticky简介 你可能不知道的position:sticky 深入理解粘性定位的计算规则 粘性定位其他特征 代码实现 微信小程序在scroll-view中使用sticky Chrome杀了个回马枪 position:sticky早有耳闻也有所了解,后来,Chro…

Redis 配置

一、关系型数据库与非关系型数据库 1. 关系型数据库 关系型数据库是一种结构化数据库,基于关系模型(二维表格模型),适合记录数据。通过 SQL(结构化查询语言)进行数据的检索和操作。主流的关系型数据库包括…

力扣每日一题:1372.二叉树中的最长交错路径

题目 给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方…

【LLM多模态】CogVideoX文生视频模型结构和训练过程

note 通过两阶段训练3D VAE,对视频进行压缩编码 第一阶段:在较低分辨率和较少帧数的视频上进行训练,学习压缩和重建视频的基本能力第二阶段:在更长的视频上训练,提高模型处理长视频的能力,同时保持帧与帧之…

SAP学习笔记 - 开发06 - CDSView + Fiori Element 之 List Report

上一章讲了Fiori UI5开发环境搭建和实践: - VSCode 安装Fiori Tools插件 - SEGW 创建后台程序,注册服务,Gateway Client确认服务 - 使用SEGW公开的服务来查询数据显示到页面 SAP学习笔记 - 开发05 - Fiori UI5 开发环境搭建2 Fiori Tools…

Vue的路由守卫与Store

路由守卫 全局路由守卫 router.beforeEach((to, from, next) > {console.log("去哪:", to, "那来:", from);// sessionStorage.getItem()//是否运行放行next(); }) //后置路由守卫 router.afterEach((to, from)>{console.log("后置…

MAVEN创建WEB项目

测试使用MAVEN创建WEB项目 创建项目 项目右击-> new-module 因为我们要创建web项目,所以Archetype选择webapp 创建后可以看到pom.xml文件中 打包方式为war包; 运行Web项目 安装tomcat,参考:maven安装依赖-CSDN博客 执行结…