面向对象进阶一(static,继承,多态)

news2024/10/7 12:20:15

面向对象进阶一

  • 一、static
  • 二、继承
    • 2.1 继承的定义和特点
    • 2.2 继承内容、成员变量和成员方法的访问特点
      • 2.2.1继承内容
      • 2.2.2 成员变量的访问特点
      • 2.2.3 成员方法的访问方法、方法的重写
    • 2.3 继承中构造方法的访问特点
  • 三、this、super使用总结
  • 四、多态
    • 4.1 多态的基本概念
    • 4.2 多态调用成员的特点

一、static

被static修饰的成员变量是静态变量,被static修饰的方法是静态方法。被static修饰的变量被该类所有对象所共享。
在这里插入图片描述

工具类的三个要点

  • 类名见名知意
  • 私有化构造方法
  • 方法定义为静态

在这里插入图片描述
在这里插入图片描述

二、继承

2.1 继承的定义和特点

继承就是从一个类扩展出另一个类。
在这里插入图片描述
在这里插入图片描述
特点:

  • 只支持单继承
  • 不支持多继承
  • 支持单层继承(直接父类、间接父类)
  • 每一个类都直接或间接地继承自Object
  • 子类只能访问父类中的非私有成员

2.2 继承内容、成员变量和成员方法的访问特点

2.2.1继承内容

  • 构造方法:非私有——不能,private修饰——不能;
  • 成员变量:非私有——能, private修饰——能;
  • 成员方法:虚方法表中的——能,否则——不能。

虚方法表中的即:不被private修饰、不被static修饰、不被final修饰。

2.2.2 成员变量的访问特点

在这里插入图片描述

2.2.3 成员方法的访问方法、方法的重写

  • 直接调用满足就近原则:谁离我近,我就用谁;
  • super调用,直接访问父类;

当父类的方法不能满足子类现在的需求时,需要进行方法重写
就是对当前子类的方法覆盖父类继承下来的方法。
在这里插入图片描述

方法重写注意事项和要求:

  • 重写方法的名称、形参列表必须与父类中的一致。
  • 子类重写父类方法时,访问权限子类必须大于等于父类(暂时了解︰空着不写<protected <public)
  • 子类重写父类方法时,返回值类型子类必须小于等于父类。
  • 建议:重写的方法尽量和父类保持一致。
  • 只有被添加到虚方法表中的方法才能被重写。

2.3 继承中构造方法的访问特点

  • 子类不能继承父类的构造方法,但是可以通过super调用。
  • 子类构造方法的第一行,有一个默认的super()。
  • 默认先访问父类中无参的构造方法,再执行自己。
  • 如果想要方法文父类有参构造,必须手动书写。
    在这里插入图片描述

三、this、super使用总结

在这里插入图片描述

四、多态

4.1 多态的基本概念

多态:同类型的对象,可以有不同的形态。

形式为父类类型 对象名 = 子类对象

多态的前提:

  • 有继承关系;
  • 有父类引用指向子类对象;
  • 有方法重写。

多态的好处:使用父类作为参数,则可接收所有子类的对象。

4.2 多态调用成员的特点

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

编译看左边: javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。
运行看左边: java运行代码的时候,实际获取的就是左边父类中成员变量的值

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

编译看左边:javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。
运行看右边: java运行代码的时候,实际上运行的是子类中的方法。
在这里插入图片描述

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

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

相关文章

MySQL 学习笔记 2:触发器

MySQL 学习笔记 2&#xff1a;触发器 图源&#xff1a;ubiq.co 触发器&#xff0c;就像字面意思那样&#xff0c;它会在数据库某些事件发生时执行一些操作。 具体来说&#xff0c;触发器会在特定表的INSERT、UPDATE、DELETE这些类型的 SQL 语句执行时被“触发”&#xff0c;并…

CopyOnWriteArrayList使用以及原理分析

文章目录 一、CopyOnWriteArrayList的简介二、CopyOnWriteArrayList类的继承关系1、Iterable接口&#xff1a;2、Collection接口&#xff1a;3、List接口&#xff1a;4、Cloneable接口&#xff1a;5、Serializable接口&#xff1a;6、RandomAccess接口&#xff1a; 三、CopyOnW…

模糊图片怎么修复清晰度?这几个方法分享给你~

在我们的日常生活和工作中&#xff0c;经常会遇到图片模糊的问题&#xff0c;这可能是由于拍摄时的手抖、对焦不准确或者图片压缩过度等原因造成的。那么&#xff0c;如何修复模糊的图片&#xff0c;提高其清晰度呢&#xff1f;本文将为您介绍几种方法。 方法一&#xff1a;使…

ABAP调用阿里云接口-短信服务-HTTP协议及签名(abap版本)<转载>

原文链接&#xff1a;https://blog.csdn.net/xiefireworks/article/details/113037650 阿里云接口文档请参考官网地址 https://help.aliyun.com/document_detail/59210.html?spm5176.8195934.J_5834642020.5.11ba4378DLVi4O 此处仅介绍使用ABAP完成阿里云短信服务签名请求的…

树莓派4B的串口UART配置

1 安装串口&#xff1a; 如果没有更换pip源会报错&#xff0c;所以指定安装源 pip install pyserial -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 修改uart配置&#xff1a; vim /boot/firmware/config.txt 在末尾添加&#xff1a; dtoverlayuart2…

X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题

前言1 下载cunit压缩安装包&#xff1a;CUint-2.1-3.tar.bz2&#xff08;为了安装成功请下载对应版本&#xff09;2 解压安装压缩包3 sudo ./bootstrap --prefix/usr/local/cunit 生成可执行文件configure*4 sudo ./configure --prefix/usr/local/cunit5 sudo make . 编译 &…

Centos安装指定docker版本和docker-compose

目录 一. 直接安装Docker最新镜像源 1. 卸载旧版本的Docker&#xff1a; 2. 安装依赖包&#xff1a; 3. 添加Docker源&#xff1a; 4. 安装Docker&#xff1a; 5. 启动Docker服务&#xff1a; 6. 验证Docker是否安装成功&#xff1a; 二、指定Docker版本安装 1. 查看…

已解决‘mongo‘ 不是内部或外部命令,也不是可运行的程序

已解决&#xff08;MongoDB安装报错&#xff09;‘mongo’ 不是内部或外部命令,也不是可运行的程序 报错代码 粉丝群里的一个小伙伴安装完MongoDB后&#xff0c;在cmd中启动&#xff0c;却说不是可运行的命令&#xff1f; 报错原因 报错原因&#xff1a;由于没有配置环境变量的…

【Redis】4、全局唯一 ID生成、单机(非分布式)情况下的秒杀和一人一单

目录 一、利用 Redis 实现全局唯一 ID 生成(1) 为啥要用全局唯一 ID 生成(2) 全局唯一 ID 生成器(3) 全局 ID 的结构(4) 代码实现① RedisIdWorker② Test (5) 全局唯一 ID 其他生成策略 二、添加优惠券(1) 数据库(2) 添加优惠券接口 三、优惠券秒杀下单功能(1) 超卖问题(2) 乐…

项目上线“G”速报 | GBASE助力四川银行反洗钱系统上线运行

随着金融机构资管业务的不断发展&#xff0c;藉由以银行为代表的金融机构建设反洗钱系统&#xff0c;向执法机构报送可疑活动&#xff0c;成为侦测潜在金融犯罪、打击腐败的重要防线。为更好助力反洗钱工作&#xff0c;四川银行着手构建新一代的反洗钱系统。作为信创第二期的重…

重磅预告丨Fortinet Demo Day系列实战攻防演练来袭!

随着网络安全形势的日趋严峻&#xff0c;越来越多的企业遭受了勒索、欺诈等危害。在高昂的赎金、生产损失&#xff0c;以及名誉损害的恐惧中&#xff0c;企业已经谈“黑”色变。黑客是如何悄无声息的“越过”重重高墙、道道壁垒进入到生产环境、办公空间&#xff0c;并在内网疯…

Android各种支持裤的最新依赖以及用户文档

https://developer.android.com/jetpack/androidx/versions 链接截图如下&#xff1a; 点击“Release Notes”中的链接&#xff0c;如果对应支持库有用户指南还能看到对应链接&#xff0c;还有如何添加依赖等&#xff0c;比如支持库中的actviity&#xff0c;如下&#xff1a;截…

【漂移-扩散通量重建 FV 方案】用于半导体和气体放电模拟的电子传输的更准确的 Sharfetter-Gummel 算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Perl 7 - 使用 Perlbrew 管理perl 版本

文章目录 关于 Perlbrew安装 Perlbrew使用 perlbrew 安装/管理 perl 版本 关于 Perlbrew 官网&#xff1a;https://perlbrew.pl 相关文档&#xff1a; App::perlbrew https://metacpan.org/pod/App::perlbrew Perlbrew 是一个工具&#xff0c;用于管理您$HOME 目录(或您指定的…

Flink基于信用值的流量控制

背景 flink内部实现了一个类似于tcp滑动窗口概念的流量控制功能&#xff0c;以满足其内部的流量控制功能&#xff0c;本文就来讲解下flink实现的基于信用值的流量控制的原理 实现原理 首先&#xff0c;我们先来看一下在flink中是如何实现数据传输的&#xff0c; 从上图可知&…

css animation 鼠标移入暂停会抖动

如图 实现一个赞助商横向滚动列表墙&#xff0c; 上下两排向右滚动&#xff0c;中间向左滚动&#xff0c;鼠标移入暂停当前行。 实现&#xff1a; // 使用animation.moving {animation: move 20s linear infinite; }keyframes move {0% {}100% {transform: translateX(-50%);…

可靠的手机问题修复工具分享 - 修复各种 Android 系统问题

一般来说&#xff0c;安卓手机都可以流畅运行。但不幸的是&#xff0c;有时您的Android手机可能无法正常运行&#xff0c;例如无响应、突然重启等。在这种情况下&#xff0c;您将需要Android手机维修软件。这些 Android 修复工具可以帮助您轻松解决此类问题&#xff0c;并还给您…

QEMU源码全解析4 —— QEMU参数解析(4)

接前一篇文章&#xff1a;QEMU源码全解析3 —— QEMU参数解析&#xff08;3&#xff09; 本文内容参考&#xff1a; 《趣谈Linux操作系统》 —— 刘超&#xff0c;极客时间 《QEMU/KVM》源码解析与应用 —— 李强&#xff0c;机械工业出版社 特此致谢&#xff01; 本回讲解Q…

JavaWeb学生考勤签到请假系统

一、项目简介 本项目是一套JavaWeb学生考勤签到请假系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;ecl…

生成图片验证码-Google Kaptcha

CaptchaImage生成 验证码 图片 captchaProducerMath.createText() 类似 captchaProducer.createText() 混合带字符的char如下 从若依学的&#xff0c;先看他的引用方式 package com.ruoyi.web.controller.common;import java.awt.image.BufferedImage; import java.io.IOExcept…