学习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 返回值类型 方法名(参数列表);

注意事项

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

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

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

相关文章

代码随想录算法训练营第五天

● 自己看到题目的第一想法 242. 有效的字母异位词 方法&#xff1a; 方法一&#xff1a; 暴力法 1. 分别对s, t排序 2. 遍历s与t 判断s[i]!t[i] 返回 false 否则 返回true思路&#xff1a; 注意&#xff1a; 代码&#xff1a; bool cmp(char a, char b){return a<b;…

网站搭建的基本流程是什么?

网站搭建的基本流程是什么? 我们选择了白嫖雨云的二级域名 浏览器输入https://www.rainyun.com/z22_ 创建账号然后选择一个你喜欢的子域名我建议后缀选择ates.top的 选择自定义地址&#xff0c;类型选择cname 现在要选择记录值了&#xff0c;有a&#xff0c;aa&#xff0c;txt…

【Logback】Logback 的配置文件

目录 一、初始化配置文件 1、logback 配置文件的初始化顺序 2、logback 内部状态信息 二、配置文件的结构 1、logger 元素 2、root 元素 3、appender 元素 三、配置文件中的变量引用 1、如何定义一个变量 2、为变量设置默认值 3、变量的嵌套 In symbols one observe…

Swift的基本数据类型

1. Int类型&#xff1a;用于表示整数&#xff0c;包括正整数和负整数。 let age: Int 30 let numberOfStudents 50 2. Double和Float类型&#xff1a;用于表示浮点数&#xff0c;即带有小数点的数值。Double提供更高的精度&#xff0c;而Float提供较低的精度。 let pi: Do…

如何压缩word文档中的图片大小?一键批量压缩~

在日常工作和学习中&#xff0c;我们经常需要创建和编辑Word文档&#xff0c;并在其中插入图片来丰富内容。然而&#xff0c;随着图片的增加&#xff0c;Word文档的大小可能会急剧增加&#xff0c;导致文件变得庞大&#xff0c;不便于传输和共享。针对这个问题&#xff0c;本文…

C++/WinRT教程(第四篇)WinRT 的错误和异常处理

目录 前言 避免捕获和抛出异常 捕获异常 抛出异常 编辑API时抛出异常 使用 noexcept 时如何调试 调用同步代码 快速失败 断言 前言 本文主要介绍 C/WinRT 中的异常如何使用以及使用原则&#xff0c;如果你刚开始接触WinRT&#xff0c;建议先阅读第一篇。 C/WinRT教程…

67-箭头函数,new.target,模版字符串

1.箭头函数 ES6新增语法&#xff0c;用来简化函数的书写()>{} <script>//箭头函数的基本使用let a (a,b)>{return ab;}let c a(1,2);console.log(c);//输出3</script> 2.简写形式&#xff1a; 2.1参数&#xff1a;只有一个参数时可以省略小括号a>{}&…

面试经典 150 题 ---- 轮转数组

面试经典 150 题 ---- 轮转数组 轮转数组方法一&#xff1a;使用额外的数组方法二&#xff1a;数组翻转 轮转数组 方法一&#xff1a;使用额外的数组 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度&#xff0c;我们遍历原数组&#xff0c;将原数组…

Java底层自学大纲_JVM篇

JVM专题_自学大纲所属类别学习主题建议课时&#xff08;h&#xff09; A 深入理解Java虚拟机001 JVM类加载器设计原理2.5 A 深入理解Java虚拟机002 基于SPI破解双亲委派机制2.5 A 深入理解Java虚拟机003 JVM内部结构分析2.5 A 深入理解Java虚拟机004 字符串常量池原理2.5 …

【算法】长短期记忆网络(LSTM,Long Short-Term Memory)

这是一种特殊的循环神经网络&#xff0c;能够学习数据中的长期依赖关系&#xff0c;这是因为模型的循环模块具有相互交互的四个层的组合&#xff0c;它可以记忆不定时间长度的数值&#xff0c;区块中有一个gate能够决定input是否重要到能被记住及能不能被输出output。 原理 黄…

37.云原生之springcloud+k8s+GitOps+istio+安全实践

云原生专栏大纲 文章目录 准备工作项目结构介绍配置安全测试ConfigMapSecret使用Secret中数据的方式Deployment使用Secret配置Secret加密 kustomize部署清单ConfigMap改造SecretSealedSecretDeployment改造Serviceistio相关资源DestinationRuleGatewayVirtualServiceServiceAc…

132557-72-3,2,3,3-三甲基-3H-吲哚-5-磺酸,具有优异的反应活性和光学性能

132557-72-3&#xff0c;5-Sulfo-2,3,3-trimethyl indolenine sodium salt&#xff0c;2,3,3-三甲基-3H-吲哚-5-磺酸&#xff0c;具有优异的反应活性和光学性能&#xff0c;一种深棕色粉末 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;132557-72-3&#xff0c;5…

ROS2体系框架

文章目录 1.ROS2的系统架构2.ROS2的编码风格3.细谈初始化和资源释放4.细谈配置文件5.ROS2的一些命令6.ROS2的核心模块6.1 通信模块6.2 功能包6.3 分布式6.4 终端命令和rqt6.5 launch6.6 TF坐标变换6.7 可视化RVIZ 1.ROS2的系统架构 开发者的工作内容一般都在应用层&#xff0c;…

MySQL学习Day24—数据库的设计规范

一、数据库设计的重要性: 1.糟糕的数据库设计产生的问题: (1)数据冗余、信息重复、存储空间浪费 (2)数据更新、插入、删除的异常 (3)无法正确表示信息 (4)丢失有效信息 (5)程序性能差 2.良好的数据库设计有以下优点: (1)节省数据的存储空间 (2)能够保证数据的完整性 …

力扣138.随机链表的复制

给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

编写一个自动合并代码到不同分支的脚本小工具

新建一个 autoMerge.sh 的文件&#xff0c;文件内容如下 # 提示用户确认继续执行 read -p "确认要执行脚本吗&#xff1f;(输入 yes 继续): " userInput# 检查用户输入是否为 "yes" if [ "$userInput" ! "yes" ]; thenecho "用户…

《TCP/IP详解 卷一》第9章 广播和组播

目录 9.1 引言 9.2 广播 9.2.1 使用广播地址 9.2.2 发送广播数据报 9.3 组播 9.3.1 将组播IP地址转换为组播MAC地址 9.3.2 例子 9.3.3 发送组播数据报 9.3.4 接收组播数据报 9.3.5 主机地址过滤 9.4 IGMP协议和MLD协议 9.4.1 组成员的IGMP和MLD处理 9.4.2 组播路由…

可用于智能客服的完全开源免费商用的知识库项目

介绍 FastWiki项目是一个高性能、基于最新技术栈的知识库系统&#xff0c;专为大规模信息检索和智能搜索设计。利用微软Semantic Kernel进行深度学习和自然语言处理&#xff0c;结合.NET 8和MasaBlazor前端框架&#xff0c;后台采用.NET 8MasaFrameworkSemanticKernel&#xff…

嵌入式Linux学习DAY26

管道的作用&#xff1a;进程间的通信 无名管道&#xff1a; 只能在父子进程中进行通信 pipe int pipe(int pipefd[2]); 功能: 创建一个无名管道 参数: pipefd[0]:读管道文件描述符 pipefd[1]:写管道文件描述符 …

【InternLM 实战营笔记】基于 InternLM 和 LangChain 搭建MindSpore知识库

InternLM 模型部署 准备环境 拷贝环境 /root/share/install_conda_env_internlm_base.sh InternLM激活环境 conda activate InternLM安装依赖 # 升级pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install str…