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

面向对象进阶一

  • 一、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.hqwc.cn/news/18653.html

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

相关文章

系统架构设计师-软件工程(4)

一、软件测试 1、软件测试类型&#xff08;动态测试 / 静态测试&#xff09; ● 动态测试【计算机运行】 &#xff08;1&#xff09;白盒测试法【结构测试】&#xff1a;主要用于单元测试阶段。 a&#xff1a;控制流测试【逻辑覆盖测试&#xff08;语句覆盖最弱&#…

PHY芯片的使用(三)在U-boot下网络PHY的移植

1、概述 以太网 PHY 驱动移植&#xff0c;主要包括 Linux、 u-boot 及设备树等三个方面标准框架下的移植。本文以裕太8511PHY为例展开说明。一般国产芯片厂商会提供在uboot/linux下PHY的驱动。在uboot/linux的PHY框架是有区别的&#xff0c;这点要注意。 YT8511 PHY 驱动的移…

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x&#xff0c;y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…

6.1Java EE——Spring介绍

一、Spring概述 String框架的核心技术 Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE一站式&#xff08;full-stack&#xff09;轻量级开源框架。它最为核心的理念是IoC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;&#xff0c;其中&…

《前端开发 实践之 腾讯地图API 学习》

目录 腾讯地图基础入门方式一方式二 事件监听监听地图瓦片加载完成事件 移除缩放控件 & 旋转控件 & 比例尺控件初始化marker图层创建信息窗点击地图拾取坐标打点标记反解析成详细地址根据输入详细地址 反解析成经纬度 腾讯地图 腾讯地图API学习-官方地址&#xff1a;ht…

RabbitMQ系列(14)--Topics交换机的简介与实现

1、Topics交换机的介绍 Topics交换机能让消息只发送往绑定了指定routingkey的队列中去&#xff0c;不同于Direct交换机的是&#xff0c;Topics能把一个消息往多个不同的队列发送&#xff1b;Topics交换机的routingkey不能随意写&#xff0c;必须是一个单词列表&#xff0c;并以…

23款奔驰GLE450动感型升级柏林之声音响系统,体验不一样的感觉

奔驰GLE450动感型升级柏林之声的音响效果自然非同凡响&#xff0c;在人声、交响乐音乐厅感受方面都有非常逼真的现场感受&#xff0c;结合柏林之声的界面调整&#xff0c;可以在不同方位体验的高保真的音乐之享&#xff01; 小柏林音响总共13个喇叭1台功放由4个高音、4个中音、…

13 个最佳免费 PDF 编辑器清单

您正在寻找一款真正免费的 PDF 编辑器&#xff0c;不仅可以编辑和添加文本&#xff0c;还可以更改图像、添加您自己的图形、签署您的名字、填写表格等等&#xff1f;您来对地方了&#xff1a;我研究了这些类型的应用程序&#xff0c;以得出您正在寻找的内容的列表。 其中一些是…

Linux·图解Linux网络包接收过程

因为要对百万、千万、甚至是过亿的用户提供各种网络服务&#xff0c;所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发&#xff0c;要理解性能开销&#xff0c;会进行性能优化。而很多时候&#xff0c;如果你对Linux底层的理解不深的话&…

hadoop -- Hbase

HBase是一个分布式、可扩展、面向列的数据存储&#xff08;百万级别列&#xff09;、可伸缩、高可靠性、实时读写的NoSQL 数据库。 HBase利用 Hadoop的 HDFS作为其文件存储系统&#xff0c; 利用MapReduce 来处理HBase中的海量数据&#xff0c; 利用Zookeeper作为分布式协同服…

《Redis 核心技术与实战》课程学习笔记(七)

切片集群&#xff1a;数据增多了&#xff0c;是该加内存还是加实例&#xff1f; 切片集群&#xff0c;也叫分片集群&#xff0c;就是指启动多个 Redis 实例组成一个集群&#xff0c;然后按照一定的规则&#xff0c;把收到的数据划分成多份&#xff0c;每一份用一个实例来保存。…