JavaSE - 面向对象编程03

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.xdnf.cn/news/1537390.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

java138-异常处理_java 138错误

//异常 public class test79 { //定义方法声明定义异常,在满足条件时抛出异常对象,程序转向异常处理 public double count(double n,double m)throws Exception { if (m 0) {//如果除数等于0.则抛出异常实例 throw new Ex…

C/C++:优选算法(持续更新~~)

一、双指针 1.1移动零 链接:283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操…

近期值得关注的扩散模型Diffusion与时间序列结合的文章

扩散模型 扩散模型(diffusion model)是一类生成模型,运用了物理热力学扩散思想,主要用于对复杂数据分布进行建模和采样。以图片生成举例简要介绍下扩散模型运作方法。给定目标分布q(x)中的一些观测数据x,生成模型的目…

常见算法——自相关的含义及Python、C实现

常见算法——自相关的含义及C实现 一、概念1. 自相关概念2. 滞后期示例说明: 二、自相关的计算步骤:1. 确定滞后期 (Lag):2. 计算平均值:3. 计算自相关: 三、示例 Python自相关计算1. 代码2. 运行结果 四、C语言实现自…

剖解杨辉三角

杨辉三角 思路&#xff1a; 我们将上述转换为一个二维数组&#xff0c;即可实现效果 另外在实现代码之前我们要了解Java中是如何实现二维数组的&#xff1a; 实现代码如下&#xff1a; public List<List<Integer>> generate(int numRows){List<List<Integ…

【linux-Day3】linux的基本指令<中>

【linux-Day3】linux的基本指令<中> linux下的基本指令&#x1f4e2;man&#xff1a;访问linux手册页&#x1f4e2;echo&#xff1a;把字符串写入指定文件中&#x1f4e2;cat&#xff1a;查看目标文件的内容&#x1f4e2;cp&#xff1a;复制文件或目录&#x1f4e2;mv&am…

【Go】Go语言中延迟函数、函数数据的类型、匿名函数、闭包等高阶函数用法与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

通信工程学习:什么是EPON以太网无源光网络

EPON&#xff1a;以太网无源光网络 EPON&#xff08;Ethernet Passive Optical Network&#xff0c;以太网无源光网络&#xff09;是一种结合了以太网技术和无源光网络&#xff08;PON&#xff09;优势的高速、大容量宽带接入技术。以下是关于EPON的详细解释&#xff1a; 一、…

springboot Controller层返回的结果,日志添加traceId ,方便对日志的追踪查询

要解决的问题&#xff1f; 接口报错&#xff0c;如何快速定位问题&#xff1f;这个需要日志的辅助&#xff0c;一般错误日志中有详细的堆栈信息&#xff0c;具体是哪行代码报错&#xff0c;都可以看到。 要想快速定位问题&#xff0c;前提是要能够快速定位日志。 海量日志&am…

GPU加速生物信息分析的尝试

GPU工具分类 实话实说&#xff0c;暂时只有英伟达的GPU才能实现比较方便的基因组分析集成化解决方案&#xff0c;其他卡还需要努力呀&#xff0c;或者需要商业公司或学术团体的努力开发呀&#xff01;FPGA等这种专用卡的解决方案也是有的&#xff0c;比如某测序仪厂家&#xf…

Leetcode—815. 公交路线【困难】(unordered_map+queue)

2024每日刷题&#xff08;163&#xff09; Leetcode—815. 公交路线 bfs实现代码 class Solution { public:int numBusesToDestination(vector<vector<int>>& routes, int source, int target) {if(source target) {return 0;}unordered_map<int, vector…

ROS组合导航笔记1:融合传感器数据

使用机器人定位包&#xff08;robot_localization package&#xff09;来合并来自不同传感器的数据&#xff0c;以改进机器人定位时的姿态估计。 基本概念 在现实生活中操作机器人时&#xff0c;有时我们需要处理不够准确的传感器数据。如果我们想要实现机器人的高精度定位&am…

Jemter项目实战(黑马程序员)

视频网址&#xff1a;02测试数据准备_哔哩哔哩_bilibili 自动化脚本架构搭建 新增和修改 新增 删除和查询 弱压力、高并发、高频率 弱压力测试 高并发 高频率 生成图形化报告

记忆化搜索算法专题——算法简介力扣实战应用

目录 1、记忆化搜索算法简介 1.1 什么是记忆化搜索 1.2 如何实现记忆化搜索 1.3 记忆化搜索与动态规划的区别 2、算法应用【leetcode】 2.1 题一&#xff1a;斐波那契数 2.1.1 递归暴搜解法代码 2.1.2 记忆化搜索解法代码 2.1.3 动态规划解法代码 2.2 题二&#xff1…

JavaScript高级——闭包的作用

1、使用函数内部的变量在函数执行完后&#xff0c;仍然存活在内存中&#xff08;延长了局部变量的生命周期&#xff09; 2、让函数外部可以操作&#xff08;读写&#xff09;到函数内部的数据&#xff08;变量/函数&#xff09; 3、函数执行完后&#xff0c;函数内部声明的局…

【1.使用Index和Match函数自动补全内容】

目录 前言如何利用函数自动填充内容效果学会使用的方法(文字图片版本)只管使用&#xff0c;不看原理原理解读MATCH函数INDEX函数组合 学会使用的方法(视频版本) 后言最后想说的话 前言 如何利用函数自动填充内容 先说结论&#xff0c;本文的目的是通过使用Excel的函数&#xf…

31.递归、搜索、回溯之综合练习

1.找出所有子集的异或总和再求和&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {int path;int sum;public int subsetXORSum(int[] nums) {dfs(nums, 0);return sum;}public void dfs(int[] nums, int pos…

Vue(12)——路由的基本使用

VueRouter 作用&#xff1a;修改地址栏路径时&#xff0c;切换显示匹配的组件 基本步骤&#xff08;固定&#xff09; 下载&#xff1a;下载VueRouter模块到当前工程引入安装注册创建路由对象注入&#xff0c;将路由对象注入到new Vue 实例中&#xff0c;建立关联 发现了#/表…

『功能项目』事件中心处理怪物死亡【55】

我们打开上一篇54回调函数处理死亡的项目&#xff0c; 本章要做的事情是用事件中心处理怪物死亡后的逻辑 首先打开之前事件中心脚本&#xff08;不做更改&#xff0c;调用即可&#xff09;&#xff1a; using System.Collections.Generic; using UnityEngine.Events; //中介者…

fiddler抓包04_基础设置(字体/工具栏/抓包开关/清空)

课程大纲 1. 设置字体 菜单栏 “工具”&#xff08;tool&#xff09; - “选项”&#xff08;options&#xff09; - “appearance”&#xff0c;设置字号和字体后&#xff0c;点击确认&#xff0c;立刻生效&#xff08;无需重启&#xff09;。 2. 展开/收起工具栏 菜单栏 “…