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

学习JAVA的第八天(基础)

目录

多态

前提

形式

测试类

调用成员的特点

优势

 劣势

注意事项:

final关键字

常量 

命名规范:

注意事项:

 权限修饰符

分类

代码块

局部代码块 

构造代码块

静态代码块

抽象类

抽象类:

定义格式    

抽象方法:

定义格式   

注意事项


多态

        同类型的对象,表现出不同形态

前提

        有继承关系

        有父类引用指向子类对象

        有方法重写

形式

        父类类型 对象名称 = 子类对象;

测试类

public class Test {public static void main(String[] args) {//创建3个对象 学生 老师 管理员Student s = new Student();s.setName("张三");s.setAge(18);Teacher t = new Teacher();t.setName("李四");t.setAge(50);Administrator a = new Administrator();a.setName("王五");a.setAge(30);register(s);register(t);register(a);}public static  void register(Person p) {p.show();}
//    学生的信息为:张三,18
//    老师的信息为:李四,50
//    管理员的信息为:王五,30
}

调用成员的特点

变量调用:编译看左边,运行也看左边

方法调用:编译看左边,运行看右边

优势

        在多态形态下,右边对象可以解耦合,便于扩展和维护。

        定义方法时,使用父类做参数,可以接收所有子类,体现多态的扩展性和便利

 劣势

 不能调用子类的特有功能,使用时需要进行强制类型转换。转换时使用instanceof关键字进行判断

        包就是文件夹,用来管理不同功能的java类,方便后续的代码维护

包名取名规则:见名知意

注意事项:

        使用同一包中的类,不需要导包

        使用java.lang包中的类,不需要导包

        如果同时使用两个包的同名类,需要用全类名

final关键字

修饰对象作用
方法表明该方法是最终方法,不能被重写

表明类是最终类,不能被继承

变量叫做常量,只能被赋值一次

常量 

        常量一般作为系统的配置信息,方便维护,提高代码可读性。

命名规范:

                单个单词:全部大写

                多个单词:全部大写,单词之间用下划线隔开 

注意事项:

        final修饰的变量是基本数据类型,那么变量存储的地址值不能发生变化。

        final修饰的变量是引用数据类型,那么变量存储的地址值不能发生变化,对象内部可以改变

 权限修饰符

 权限修饰符:用来控制一个成员被访问的范围

作用:可以修饰成员变量,成员方法,构造方法,内部类

分类

修饰符同一个类中同一个包中其他类不同包下的子类不同包下的无关类
private
空(默认)
protected
public

代码块

  • 局部代码块
  • 构造代码块
  • 静态代码块

局部代码块 

                用于限定变量生命周期,提高内存利用率。

构造代码块

                写在成员位置的代码块,优先构造方法执行的。

静态代码块

                需要static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。

抽象类

抽象类:

                如果一个类中存在抽象方法,那么该类必须被声明为抽象类

定义格式    

public abstract class 类名{}

抽象方法:

                将共性的行为抽取到父类之后。由于每个子类执行的内容不一样,所以在父类中不能确定每个子类的方法体

定义格式   

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

注意事项

  • 抽象类不能实例化
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 可以有构造方法
  • 抽象类的子类需要重写抽象类中的所有抽象方法,或者子类也是抽象类

相关文章:

学习JAVA的第八天(基础)

目录 多态 前提 形式 测试类 调用成员的特点 优势 劣势 包 注意事项: final关键字 常量 命名规范: 注意事项: 权限修饰符 分类 代码块 局部代码块 构造代码块 静态代码块 抽象类 抽象类: 定义格式 抽象…...

【硬件相关】IB网/以太网基础介绍及部署实践

文章目录 一、前言1、Infiniband网络1.1、网络类型1.2、网络拓扑1.3、硬件设备1.3.1、网卡1.3.2、连接线缆a、光模块b、线缆 1.3.4、交换机 2、Ethernet网络 二、部署实践(以太网)1、Intel E810-XXVDA21.1、网卡信息1.2、检查命令1.2、驱动编译 2、Mella…...

【JavaEE】_Spring MVC项目之建立连接

目录 1. Spring MVC程序编写流程 2. 建立连接 2.1 RequestMapping注解介绍 2.2 RequestMapping注解使用 2.2.1 仅修饰方法 2.2.2 修饰类与方法 2.3 关于POST请求与GET请求 2.3.1 GET请求 2.3.2 POST请求 2.3.3 限制请求方法 1. Spring MVC程序编写流程 1. 建立连接&…...

【JavaEE进阶】 Spring AOP源码简单剖析

文章目录 🍃前言🍀Spring AOP源码剖析⭕总结 🍃前言 前面的博客中,博主对代理模式进行了一个简单的讲解,接下来博主将对Spring AOP源码进行简单剖析,使我们对Spring AOP了解的更加深刻。 🍀Sp…...

Redis--内存回收机制详解

什么是内存回收机制? 众所周知Redis之所以性能高是因为数据都存在内存中,内存是很宝贵的,Redis的内存回收机制本质就是处理达到过期时间的key-value,以及当内存到达最大使用值时候触发的内存淘汰策略。 Redis数据删除的策略有哪些&#xf…...

win安装卸载python3.13

一、安装 访问python官网:https://www.python.org/ 点击“Downloads” 点击“Windows” 找到自己要下载的版本和位数,比如我这个是3.13版本、64位的安装包 下载好了之后,双击安装包 勾选“Add python.exe to PATH”:把python环…...

APIFox-自动获取登录状态操作

APIFox-自动获取登录状态操作 概述 作为纯后端开发码农,每次接口开发完的调试很重要,因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作,可以很方便的自动获取登录状态,节省大量重复劳动时间。…...

【NDK系列】Android tombstone文件分析

文件位置 data/tombstone/tombstone_xx.txt 获取tombstone文件命令: adb shell cp /data/tombstones ./tombstones 触发时机 NDK程序在发生崩溃时,它会在路径/data/tombstones/下产生导致程序crash的文件tombstone_xx,记录了死亡了进程的…...

CentOS7 Hive2.3.8安装

CentOS7 Hive2.3.8 安装 建议从头用我的博客,如果用外教的文件到 一、9)步骤了,就用他的弄完,数据库不一样,在9步骤前还能继续看我的 一、 安装MySQL 0.0)查询mariadb,有就去0.1),没有就不管…...

代码随想录算法训练营第四十四天 完全背包 、零钱兑换 II 、组合总和 Ⅳ

代码随想录算法训练营第四十四天 | 完全背包 、零钱兑换 II 、组合总和 Ⅳ 完全背包 题目链接:题目页面 (kamacoder.com) 解释一、01背包 一维 :为什么要倒序遍历背包? 首先要明白二维数组的递推过程,然后才能看懂二维变一维的…...

【经验】vscode 鼠标拖曳不能选中整行文字,只能选中纵向矩形范围

1、问题描述 不知道昨天操作vscode设置界面时,误选择了啥,导致鼠标拖曳不能选中整行文字,只能选中纵向矩形范围,现象如下: 2、解决方法 1)打开设置界面 点击左下角按键,选择“设置” 2&…...

Redis--事务机制的详解及应用

Redis事务的概念: Redis事务就是将一系列命令包装成一个队列,在执行时候按照添加的顺序依次执行,中间不会被打断或者干扰,在执行事务中,其他客户端提交的命令不可以插入到执行事务的队列中,简单来说Redis事…...

路由器端口映射如何配置?

在网络通信中,路由器是一个重要的设备,它负责将数据包从一个网络传输到另一个网络。路由器的端口映射配置是一种重要的设置,可以使外部网络中的计算机通过访问路由器上的特定端口与内部网络中的计算机进行通信。本文将介绍什么是路由器端口映…...

力扣34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 二分查找常用解题模板(带一道leetcode题目) 直接套用上述中的寻找左、右边界的二分查找模板即可 复杂度 时间复杂度: O ( l o g n )…...

【每日一题】3.2 求逆序对

题目描述 给定一个长度为 n的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i个和第 j个元素&#xff0c;如果满足 i<j 且 a[i]>a[j]&#xff0c;则其为一个逆序对&#xff1b;否则不是。 输入格式 第一行包含整数 n…...

NTP时间源服务器(NTP网络时钟)助力智慧医院数字化

NTP时间源服务器&#xff08;NTP网络时钟&#xff09;助力智慧医院数字化 NTP时间源服务器&#xff08;NTP网络时钟&#xff09;助力智慧医院数字化 目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。 随着计算机网络应用的不断涌现&#xff0c;计算机的时…...

Benchmark学习笔记

小记一篇Benchmark的学习笔记 1.什么是benchmark 在维基百科中&#xff0c;是这样子讲的 “As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, te…...

Linux中的动静态库

目录 一、静态库 &#xff08;1&#xff09;静态库的优缺点&#xff1a; &#xff08;2&#xff09;Linux下静态库的创建和执行 1.直接编译​编辑 2.指定路径和库名 3.用LIBRARY_PATH环境变量来配置路径 二、动态库 &#xff08;1&#xff09;动态库的优缺点 &#xff…...

C/C++基础语法

C/C基础语法 文章目录 C/C基础语法头文件经典问题链表链表基础操作 秒数转换闰年斐波那契数列打印n阶菱形曼哈顿距离菱形图案的定义大数计算 输入输出格式化输入输出getline()函数解决cin只读入一个单词的问题fgets读入整行输出字符数组&#xff08;两种方式puts和printf&#…...

Home Assistant:基于Python的智能家居开源系统详解

Home Assistant&#xff1a;基于Python的智能家居开源系统详解 在数字化和智能化的时代&#xff0c;智能家居系统成为了现代家庭的新宠。它们能够让我们更加方便地控制家中的各种设备&#xff0c;实现自动化和个性化的居住体验。其中&#xff0c;Home Assistant作为一款基于Pyt…...

Halcon实战:用area_center算子快速搞定图像区域面积与中心点计算(附完整代码)

Halcon实战&#xff1a;用area_center算子快速搞定图像区域面积与中心点计算&#xff08;附完整代码&#xff09; 在工业质检、医疗影像或自动化测量领域&#xff0c;图像区域的面积与中心点坐标是最基础却至关重要的特征参数。想象一下这样的场景&#xff1a;生产线上需要统计…...

Spring_couplet_generation 技术社区分享:在CSDN撰写高质量技术博客指南

Spring_couplet_generation 技术社区分享&#xff1a;在CSDN撰写高质量技术博客指南 写技术博客&#xff0c;尤其是分享一个像 Spring_couplet_generation 这样有趣又有文化内涵的项目&#xff0c;是件挺有成就感的事。但怎么才能把文章写得既有干货&#xff0c;又能吸引人&am…...

Python双目三维重建系统项目:双目标定、立体校正与双目测距全流程解析

python双目三维重建系统项目 双目标定&#xff0c;立体校正&#xff0c;双目测距&#xff0c;三维重建 该项目旨在带你了解三维重建流程&#xff1a;包括相机标定&#xff0c;立体匹配&#xff0c;深度计算等等 代码包含: 支持双USB连接线的双目摄像头 支持单USB连接线的双目摄…...

集成AI 的 Redis 客户端 Rudist发布新版了谔

Qt是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...

TensorFlow.js推理超快

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 TensorFlow.js推理速度革命&#xff1a;构建超快Web端AI应用的实践与未来目录TensorFlow.js推理速度革命&#xff1a;构建超快We…...

Makefile -GNU和MakeFile关系(二)

跟我一起写Makefile 一、 GNU 到底是什么&#xff1f;&#xff08;极简版&#xff09; GNU 一套开源、免费、自由的软件生态系统 全称&#xff1a;GNU’s Not Unix&#xff08;递归梗&#xff0c;意思“不是Unix&#xff0c;但像Unix”&#xff09; 你可以把它理解成&#x…...

如何用插件化架构实现跨平台音乐数据智能统一?

如何用插件化架构实现跨平台音乐数据智能统一&#xff1f; 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/MusicFree 你是否曾经在网易云音乐收藏了一首好歌&#xff0c;想在QQ音乐上听却发现歌…...

5步解锁QQ音乐加密文件:QMCDecode让你的音乐收藏重获自由 [特殊字符]

5步解锁QQ音乐加密文件&#xff1a;QMCDecode让你的音乐收藏重获自由 &#x1f3b5; 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录…...

Cogito 3B效果展示:128K上下文内跨章节引用——技术白皮书重点定位实测

Cogito 3B效果展示&#xff1a;128K上下文内跨章节引用——技术白皮书重点定位实测 1. 引言&#xff1a;当模型能“记住”一整本书 想象一下&#xff0c;你拿到一份长达数百页的技术白皮书&#xff0c;里面包含了产品介绍、技术架构、性能参数、应用案例等十几个章节。你需要…...

黑苹果完全指南:在普通PC上安装macOS的终极教程与避坑手册

黑苹果完全指南&#xff1a;在普通PC上安装macOS的终极教程与避坑手册 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 想要在普通台式机或笔记本上体验ma…...