Java基础知识整理【8】 (继承,重写,super关键字,Object类,final关键字)

腾讯滑块验证码collect参数逆向与JSVMP对抗实战 本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。 阅读详情

继承

在某个父类的基础上进行扩张,从而产生新的子类的过程,这个过程就是继承

子类继承父类的原有属性和方法行为,所以子类要比父类强大。父类中的private属性子类不能继承

java中的类与类之间只能单一继承,不允许多继承,相当与一个类有一个父类

Java中在类于类之间形成继承关系式 需要使用一个关键字 extends 表示类于类之间是继承关系

语法:
public class 子类类名 extends 父类类名{}
extends 前面类 是子类
extends 后面类 是父类

子类是可以继承父类可见属性和行为,但是不能继承父类的构造方法,所以子类必须提供自己的构造方法

总结

子类在创建对象时候会先创建父类的对象,然后在创建子类的对象
ps:子类在创建对象的时候会先调用父类无参构造方法,然后在创建子类对象(得到证实)
ps:相当于现实中现有父亲在有儿子 子类会自动调用父类的无参构造方法用创建,所以父类应该提供一个无参构造方法
若父类中没有提供无参构造方法,但是提供其他的构造方法 子类需要在其自己的构造方法中显式的调用父类的构造方法,以达到可以创建对象

重写

重写必须是继承关系

父类中提供了一个方法,这个方法无法满足子类需求的时候,子类可以重写父类方法 怎么样重写:
1.重写方法必须方法签名相同(方法签名 = 方法名 + 方法的参数把列表)

2.子类方法的返回值类型是和父类方法的返回值类型相同或其子类
例如:
public Number show(){ } —> 重写 ----> public Number或其子类Integer show(){}

3.子类方法声明抛出的异常类型和父类方法声明抛出的异常类型相同或其子类
例如:
public void show()throws Exception{} ----> 重写 ----> public void show() throws Exception或其子类{}

4.子类方法声明中抛出异常,异常类型需要小于等于父类中声明抛出的异常类型
例如:
public void show(){throw new RuntimeException()} ----> 重写
---->public void show(){throw new RuntimeException()或其子类}

5.子类方法可以同时声明抛出多个属于父类方法声明抛出异常的子类(RuntimeException除外)

6.子类方法的访问权限修饰符必须大于等于父类的权限修饰符
例如: public void show(){} --> 重写 --> public void show(){}

public class Test {
public static void main(String[] args) { Son son1 = new Son();
Son son2 = new Son(“张三”);
} }

7.当前父类使用后续三种修饰符之一,子类就不能重写父类的方法 private , static ,final ps:父类是如何定义这个方法的,子类就完全一样的照抄一遍,实现逻辑不通即可/(子类自己的实现)

super关键字

super关键字代表的是父类对象,只能使用在子类中 super关键字的使用
和this关键字的使用类似,但是this可以进行方法方法参数的传递,super不可以
super关键字的主要作用就是调用父类的构造方法,super不可以和static共存

子类重写了父类的方法,所以执行时只用执行子类的方法。

对象是可以调用静态属性和方法的,但是不要这样做,静态属于类,应该有类调用

super关键字对我们最大的作用就是对当前在子类构造方法需要对父类属性初始化时,进行构造
super() --> 无参构造方 super(参数) --> 有参构造方法
这句话必须存在子类构造方法的第一句并给不能和this()共存

super关键字this关键字都和statc共存

Object类

权限修饰符
private 私有 public 公有 protected 保护的 default(package) 默认的
修饰的类的只有两种 : public 公有 default(package) 默认的 修饰符还可以修饰属性和方法
在这里插入图片描述

Object中常用的三个方法
hashcode(); equals(); toString()

      //不使用使用所提供默认toString,需要定义自己的打印方式 //自定对象打印是可以重写toString
        @Override
        public String toString() {
            return "姓名:"+name+" "+"年龄"+age;
         }
        /*
        * 如何认定连个自定义对象是统一个对象呢?
        * 即属性相同,两个对象中存储的数据完全一致,此时我们就认为当前对象是同一个对象
        * 1.完全相同,所有的属性都要比较
        * 2.部分相同,相当于部分属性进行比较 */

        @Override
        public boolean equals(Object obj) { 
        //如果是引用类型可以直接调用已经实现的equals方法比较(不能是Object提供默认equals) 
        //如果是值类型 直接 == 比较 
        //因为Object是一个父类,作为当前equals参数时的作用可以达到接收任何数据类型
         //体现一个面向对象的特征:就是多态 
         //父类对象可以接收一个子类引用,不能再调用子类中特有的属性和行为 
         //需要将当前父类类型转换我原有子类类型
        //强制类型转换 --> 对象的向下转型
            Person other = (Person)obj;
            return this.name.equals(other.name) && this.age == other.age;
        }
        //因为两个对象相等,需要hashcode也要相等 //必须重写hashcode //重写equals的同时也要重写hashcode @Override
        public int hashCode() {
        /*Boolean类型的变量 三目进行判断 true ? 1 : 0
        * 整数 直接获取其值
        * 小数 调用其包装类的方法来进行换算
        * Float.floatToIntBits(float类型变量)
        * Double.doubleToLongBits(double类型变量) * 所有的引用类型都是使用hashcode值
        * 通过属性计算hashcode值
        */
            return name.hashCode() + age;
        }

final关键字

final是一个关键字,这个关键字的含义是最终
fianl关键字可以修饰变量 --> 一旦修饰就会被称为常量(定义常量)
final还可以修饰方法 --> 当前方法只能被子类继承不能被子类重写 final修饰类 --> 终类,不能被继承
final可以和static一起使用 但是不能和 abstract 一起使用

final修饰的变量 一旦赋值不能更改
全局变量(final修饰变量名必须大写,多个单词之间使用_分隔)
final修饰全局变量的时候,最好是先进性赋值
final可以和static一起使用还可以添加权限修饰符
final修饰的类不能被继承

为什么我的 Spark Executor / Yarn Container 只有一个vCore? 在很多集群里,在关闭了Spark的DynamicAllocation的前提下(避免自动申请空闲资源,干扰测试结果),都会观察到:提交Spark作业时,申请 1 个 driver + n 个 executor 会在Yarn上会对应创建 n+1 个 container,但是每个container只有一个vCore,通过--driver-cores和--executor-cores设定的vCore数都未奏效。有人会因此错误的认为Yarn上的一个vCore对应一个Spark的executor,这是非常错误的,正确的 阅读详情

相关推荐

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 576

继承、重写、super、this、抽象类、接口、多态、final、权限、内部类

1.继承 1.格式: public Class 子类名称 enxtends 父类名称{ } 2.继承关系下访问成员变量(变量重名): 直接通过子类访问成员变量:等号左边是谁,就优先用谁的成员变量,没有则向上找 即间接通过成员方法访问成员变量:该方法属于谁,就用谁的成员变量 3.父类成员变量、子类成员变量、局部变量重名 局部变量:直接写 子类成员变量:this.成员变量 父类成员变量:...

weixin_40120708的博客 277

使用RustDesk或者AnyDesk的TCP隧道实现Codesys系列PLC的远程调试和下载

Codesys远程调试

exat500g的博客 7274

二、Java面向对象(8)_继承思想——Object类

2018-05-02 一个blx的程序员可不太好。 Object类 查阅API 基本描述:   1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;   2)Object类是所有Java类的祖先(根类)。每个类都使用 Object 作为超(父)类(直接父类或间接父类)。所有对象(包括数组...

ams90203的博客 185

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

手把手教你用SAM模型实现精准图像分割:从环境配置到实战应用

本文详细介绍了如何使用Meta推出的Segment Anything Model(SAM)实现精准图像分割,从环境配置到实战应用的全流程。特别针对电商场景中的商品分割需求,提供了硬件配置、模型下载、API使用及优化策略等实用指南,帮助开发者快速掌握这一强大的深度学习工具。

pepsi的博客 1062

Java学习笔记;super关键字、final关键字

super关键字 在 成员变量或者方法被隐藏后想要调用被隐藏的方法或变量就需要用到super关键字 比如super.x、super.paly()就是访问和调用被子类所隐藏的变量x和方法paly(); 当super调用被隐藏的方法时,该方法中出现的成员变量是被子类所隐藏的成员变量或继承的变量。 使用super调用父类的构造方法 package super1; class Student { int ...

Eysunvoes的博客 388

鱼鹰优化算法(OOA)详解:从猛禽捕食智能到优化算法实现

鱼鹰优化算法(Osprey Optimization Algorithm, OOA)是2023年提出的一种新型元启发式优化算法,灵感来源于鱼鹰(一种中型猛禽)高效的捕食策略。算法模拟了鱼鹰从空中识别水下鱼类位置并俯冲捕食,然后将捕获的鱼带至安全位置享用的全过程,以此抽象出全局探索和局部开发两个核心阶段。OOA算法具有参数少、结构简单、收敛速度快、全局寻优能力强等特点。自提出以来,已在函数优化、机器学习参数调优(如CatBoost模型)、路径规划等多个领域展现出良好性能,为解决复杂优化问题提供了新的有效工具。

qq_42212808的博客 273

final、super关键字、抽象类、类的继承

final理解成最终的意思 final定义的类是不可被继承的 final class A{ } class B extends A{ } //错误,A不能被继承 final 修饰的变量为常量,不可被更改,但是要大写 final String IN = "in"; final定义的方法无法被子类覆盖 super关键字 super 和this一个理解成父类,一个理解成子类 this() 、supe...

qq_43137036的博客 187

代谢组数据分析(五):代谢组的功能富集分析

本文介绍了代谢组数据分析中的功能分析,包括代谢物富集分析、GSEA和ssGSEA方法。文章详细阐述了分析原理、应用背景、数据准备、统计方法以及结果解释,强调了在代谢通路和代谢物ID对应关系建立、差异代谢物筛选、富集程度计算等方面的关键步骤。通过这些方法,可以揭示差异代谢物在生物过程中的作用,为疾病研究和药物开发提供依据。

专注生信领域 5981

【论文复现】水下单光子激光雷达设计 Sequential Multimodal Underwater Single

针对对慢速小水下目标进行远距离、高分辨率重建的需求,单光子激光雷达(LiDAR)目标重建技术的研究正在进行。本文报告了一种基于时空序列融合的顺序多模态水下单光子 LiDAR 自适应目标重建算法,该算法具有强大的信息提取和噪声过滤能力,能够从复杂的回波光子计数和空间像素关系中重建目标的深度和反射强度信息。该方法包括三个步骤:数据预处理、序列优化极值推断滤波以及图像优化协同变分策略,以实现复杂水下环境下的高质量目标重建。

u012133341的博客 293

Java类是如何默认继承Object的?

Java类是如何默认继承Object的?前言继承自Object验证推测可能的原因编译器处理JVM处理验证结论结论 前言 学过Java的人都知道,Object是所有类的父类。但是你有没有这样的疑问,我并没有写extends Object,它是怎么默认继承Object的呢? 那么今天我们就来看看像Java这种依赖于虚拟机的编程语言是怎样实现默认继承Object的,以及Java编译器和JVM到底是如何做的? 继承自Object验证 首先我们来验证一下Object是不是所有类的父类,随便新建一个Java类,如下图:

z_dnaba的博客 696

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java——子类与继承(知识整理)

java——子类与继承(知识整理) 子类与父类 在类的声明中,通过使用关键字extends来定义一个类的子类,格式如下: class 子类名 extends 父类名{ ... } 例如: class Student extends People{ ... } Student类定义为People类的子类,People类是Student类的父类。 子类的继承性 所谓子类继承父类的成员变量作为自己的...

linjiayina的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于《java2实用教程》的java知识点复习整理【 第五章——子类与继承】

第五章——子类与继承 不必从头再来 一、知识结构框架 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-didpJtJ2-1619098242194)(C:\Users\官二的磊子\Desktop\image-20210422210428623.png)] 二、知识点详解 1、子类的继承性 class 子类名 extends 父类名{} 子类的成员中有一部分是自己定义的,有一部分是从父类继承的。 若子类与父类在一个包中,则子类自然地继承父类非private的成员变量或方法。 若

农夫的码,没有草原 3182

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java 面向对象进阶:深入理解继承、重写与 final

继承:作用:代码复用特点:单- -继承、賄传递性super关键字:指代当前对象的父类对象方法的重写:发生在父子类中,方法名相同,参数列表相同重写方法被调用时,看对象的类型调用方法final: 最终的、不可改变的变量不能被改变、方法不能被重写、类不能被继承。

热爱WebGIS的博客 921

Java 基础之继承(一)

文章目录前言为什么要使用继承概念 前言 最近在阅读一些 Android 开源框架的源码的时候,由于对 Java 的继承和接口方面的内容掌握的不是很牢固,可以说阅读得是苦不堪言,总会产生一些莫名其妙的疑惑点。所以决定对于这部分的知识进行一个系统的整理。这一篇介绍的是类的继承。 为什么要使用继承 提高了代码的复用性。 提高了代码的维护性 让类与类之间产生了关系,是多态的前提。 概念 维基百科中关于...

Marck的博客 5148

Java常用关键字:this、super、final、static、访问修饰符

Java常用关键字:this、super、final、static、访问修饰符

Java鱼仔的博客 875

Java基础super关键字、final关键字、static关键字、匿名对象整理

super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } class Fu{ int num ; Fu(){ System.out...

weixin_30354675的博客 116

Java基础 - 代码块,继承,方法重写,final

A:什么是方法重写重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)B:方法重写的应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,

2401_83916326的博客 701

Java 基础知识总结(超详细整理)

本文系统梳理了Java语言的核心知识点,包括跨平台原理、JDK/JRE/JVM关系、面向对象三大特性(封装、继承、多态)、基础语法(数据类型、变量、运算符、流程控制)等。内容涵盖Java开发必备知识体系,从基础概念到实际应用,帮助开发者快速掌握Java编程基础。

Huangmiemei911的博客 5098

Java常见关键字总结:static,final,this,super

最近准备面试,将之前学习的知识进行整理,记录一下学习日志。 想想之前学的知识都忘了好多就有点悲伤(⊙︿⊙) 这次复习的知识点是面向对象的关键字static,final,this,super,一些注意的点和知识点。 文章目录常见关键字总结:static,final,this,superfinal 关键字static关键字修饰成员变量和成员方法(常用)静态代码块静态导包补充内容静态方法与非静态方法static{}`静态代码块与`{}`非静态代码块(构造代码块参考this关键字Super关键字参考 常见关键字总结

m0_49397863的博客 587

Java中各种关键字及概念整理

文章目录 super和this 【掌握】 1.super的作用:super指的是当前类的对象的父类引用 2.super可以调用父类的成员属性 super.成员变量 3.super可以调用父类的成员方法 super.成员方法 4.super可以调用父类的构造方法 super(…) this的作用:this指的是当前类的对象引用 this可以调用本类的成员属性 this.成员属性 this可以调用本类...

Slow_boat的博客 540

JavaSE(9)-细节狂魔:OOP之继承多态?20K字长篇看完,有手就行

两万字长篇彻底吃透继承多态思想,对继承多态进行了深入的剖析,图文搭配详解,适合新手深入进阶学习,期末考试复习。

今年终于不是一个人看烟花了,因为今年没有烟花。 3800

Java基础知识总结(超详细整理),java从入门到精通pdf

数组 数组是数据的集合,一个容器,用来存储任何类型的数据,包括原始数据类型和引用数据类型,但是一旦指定了数组的类型之后,就只能用来存储指定类型的数据。 数组声明的三种方式: 数据类型[] 数组名 = new 数据类型[长度]; 数据类型[] 数组名 = {数据,数据,…,数据}; 数据类型[] 数组名 = new 数据类型长度[] {数据,数据,…,数据}; 一维数组: 数组变量的声明: 语法:数据类型[] 数组名;,如:int[] num;、double[] d;、String[].

m0_63174420的博客 2946

Java--继承

本文详细讲解了Java中的继承特性,涵盖其定义、语法、分类(如单继承、多层继承)及final关键字的使用。介绍了super关键字在访问父类成员、调用父类方法和构造方法中的作用,以及初始化过程中父子类的执行顺序。还探讨了protected关键字的访问权限特性,并对比了继承与组合的设计模式。继承体现is-a关系,适合类层次结构;组合通过has-a关系实现灵活的代码复用,降低耦合度。文章结合代码示例,分析了两者的适用场景,建议优先使用组合以提升系统灵活性与稳定性,适合初学者学习Java面向对象编程。

weixin_73966418的博客 1328

Java 核心特性(static、继承、重写、多态等)整理文档

本文档基于参考文档,系统梳理 Java 中 static 关键字、继承、super、权限修饰符、方法重写、final、多态、引用类型转换等核心特性,涵盖概念、特点、用法及案例要点。

2202_75438982的博客 400
上一篇: Java基础知识整理【7】 (封装,static,代码块)
下一篇: Java基础知识整理【9】 (多态,里氏转化原则,抽象类和抽象方法,接口)
码上发财V
博客等级 码龄11年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值