JAVA学习day05

news/2024/10/5 14:53:07/文章来源:https://www.cnblogs.com/yzl2317520596/p/18287967

继承

super

  1. super(); super调用父类的构造方法,且必须在构造方法的第一行。
  2. this();调用本类的构造方法。
  3. super只能出现在子类的方法或者构造方法中。
  4. super和this不能同时调用构造方法。
  5. this 代表 调用当前类的对象
  6. super 代表 调用父类的对象
  7. this 在没有继承的情况下也能使用
  8. super 只能在继承条件下才能使用

方法的重写

  1. 重写的意义:父类的功能,子类不一定需要,或者不一定满足。

  2. 只能子类重写父类的方法。

  3. 方法名必须相同。

  4. 参数列表必须相同(不同就是重载)。

  5. 修饰符:范围可以扩大但不能缩小:public>Protected>Default>private

  6. 抛出的异常范围可以缩小但是不能扩大:ClassNotFoundException-->Exception(大)

  7. A a = new A(); 创建了一个A类的对象,并将其引用赋值给一个类型为A的变量a

    B b = new A(); 创建了一个A类的对象,并将其引用赋值给一个类型为B的变量b。这种情况下,尽管实际对象是A类的实例,但通过b变量只能访问B类中定义的方法和属性(除非这些方法在A类中被重写)

  8. 引用赋值:引用赋值(reference assignment)是指将一个对象的引用(即内存地址)赋值给一个变量。这样,变量实际上并不存储对象本身,而是存储一个指向对象的内存地址。多个变量可以引用同一个对象,这样的变量可以被用来访问和修改同一个对象的状态。

多态

  1. 多态是方法的多态
  2. 父类和子类,有联系 。否则类型转换异常ClasscastException!
  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();调用方法时会执行子类中重写的方法无论是通过父类的引用还是子类的引用,只要子类没有重写该方法,都会调用父类的方法
  4. 无法重写:1. static修饰的方法,属于类,它不是实例;2. final 定义的为常量;3. private方法。
  5. image-20240703112827488

instanceof

Person person = new Student();

X instanceof Y

instanceof用于检查一个(X)对象(不是类型)是否是(Y)某个类(或其子类)的实例

具体两个步骤:

  1. 编译时类型检查:编译器首先检查操作数的静态类型(编译时类型),确保这些类型(X和Y)之间有继承关系。如果没有继承关系,编译器就能确定 instanceof 判断的结果永远为 false,因此会报编译错误
  2. 运行时类型检查:如果编译时类型检查通过,instanceof 运算符将在运行时进行实际的对象(new Student属于Student的实例同时也属于Person、Object的子类)类型检查,以确定对象是否是特定类或其子类的实例。

类型转换

  1. 父类的引用指向子类的对象形如Person student = new Student();
  2. 子类转换为父类为向上转型不需要强制转换,但是会丢失子类的一些方法。
  3. 父类转换为子类为向下转型需要强制转换。
  4. 作用:方便方法的调用,减少重复的代码,提高利用率

static

  1. 与类一起加载(最快),只加载一次。
  2. 匿名代码块和对象一起产生,在构造器之前。经常用于赋初始值
  3. final修饰的类不能被继承

抽象类

  1. 不能new这个抽象类,只能靠子类去实现它
  2. 有抽象方法的类必须设置为抽象类,但抽象类里面可以有普通方法
  3. 意义:作为一种标准框架设计并节约开发成本

接口

  1. 接口通过定义方法让不同的人实现,即一种方法有多种实现方式。
  2. interface定义接口,之前都是class定义为类。
  3. 接口可以多继承。
  4. 接口中所有定义的方法都是抽象的public abstract只不过省略了。所有定义的属性都是常量
  5. 接口必须要有实现类,同时实现类必须重写接口中的方法。
  6. image-20240705101825099
  7. 接口不能被实例化,接口没有构造器
  8. implement可以实现多个接口(多久继承)

异常

image-20240706193041967

image-20240706193131475

错误

image-20240706192950467

异常和错误的区别

image-20240706193149196

异常的处理机制

image-20240706202140692

  1. try(监控)-catch(捕获异常)-finally(善后工作)
  2. throw抛出异常,可以让catch捕获到。这是一种向下抛出
  3. throws在方法中捕获异常,相当于在方法中的异常向上抛出
  4. image-20240706213750018

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

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

相关文章

nacos学习笔记之服务发现中心

一.什么是服务发现 在微服务中,服务的消费方需要调用服务的生产方,这样服务的消费方就需要知道服务的消费方的网络地址(ip+端口号)。 二、流程上图中服务实例本身并不记录服务生产方的网络地址,所有服务实例内部都会包含服务发现客户端(例如spring cloud中的ribbon)。 (…

第一次学习Java的碎碎念

2024年夏新的学习开始了; 今天做了什么? 在B站上收藏了黑马程序员学习Java的教学视频,观看了几篇入门教程,暂时学会了如何打开CMD,以及几个常见的CMD命令,例如盘符名称:、dir、cd目录、cd..、cls、exit等等,做了一个练习(利用cmd打开qq),学会了如何把应用程序的路径…

测试标题

测试摘要\[a /ge b /eq c \]

Java反射与Fastjson的危险反序列化

Preface 在前文中,我们介绍了 Java 的基础语法和特性和 fastjson 的基础用法,本文我们将深入学习fastjson的危险反序列化以及预期相关的 Java 概念。 什么是Java反射? 在前文中,我们有一行代码 Computer macBookPro = JSON.parseObject(preReceive,Computer.class); 这行代…

Win10双屏设置 之 鼠标不能从中间划过 问题解决

Win10双屏设置 之 鼠标不能从中间划过解决-百度经验 (baidu.com)

比赛获奖的武林秘籍:03 好的创意选取-获得国奖的最必要前提

本文主要介绍了大学生电子计算机类比赛和创新创业类比赛创意选取的重要性,并列举了好的创意选取和坏的创意选取的例子,同时说明了好的创意选取具有哪些特点,同时对常见的创意选取途径与来源进行了基本介绍。比赛获奖的武林秘籍:03 好的创意选取-获得国奖的最必要前提 摘要 …

阶段测试

Sre网络班阶段测试 一:用sed 命令修改/etc/fstab文件,删除文件中的空行,注释行,并保留文件备份(7分) 答案写这里:二: 用 find 命令查找出 /var/ 目录中大于1M且以db结尾的文件(7分) 答案写这里:三: 先判断当前主机是否安装了nginx包,如果没安装,则执行命令安装,…

时间序列分析专题——利用SPSS专家建模器进行建模

SPSS的专家建模器可以自动识别数据,给出最适合的模型,本章通过三个例题介绍如何使用SPSS实现时间序列分析。由于本人对时间序列分析的理解尚浅,做出模型后在论文上的呈现形式需要取查阅资料,以便更好地在论文上呈现 在此之前,我们还需要了解时间序列分析的一些基础的名词 …

如何在ubuntu上设置清华源

如何在ubuntu上设置清华源 apt介绍 apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 apt 命令执行需要超级管理员权限(root)。 操作 …

c++ u7-02-高精度乘法

本节课作业: 链接:https://pan.baidu.com/s/13-FC86jSHGziRDA8lqzimg?pwd=owv1 提取码:owv1高精度乘法    #include<iostream> #include<cstdio> #include<cstring> using namespace std; string x , y; int a[50010] , b[50010] , c[50010…

node-red的基本指令

1. inject->debug输入到输出,调试结果在右边如果选择时间戳的话,可以选择立即执行,或者周期性,持续执行inject除了时间戳还有一些其他输入项可以选择inject选择json文件输出写好json文件之后点击格式化json,可以校对文件格式payload.number可以让输出只输出number的内容…