面向对象进阶-继承
继承中:成员变量的访问特点
就近原则:谁离我近我就访问谁,先在局部位置找,找不到然后在到本类成员位置到,如果本类成员位置找不到就到父类成员位置找,逐级往上找。
package oop.Extends.a03oopextendsdemo03;
public class Test {public static void main(String[] args) {Zi z = new Zi();z.show();}
}class Fu{String name="fu";}class Zi extends Fu{String name="zi";public void show(){String name="zishow";System.out.println(name);//zishowSystem.out.println(this.name);//ziSystem.out.println(super.name);//fu}}
练习:
package oop.Extends.a04oopextendsdemo04;
public class Test4 {public static void main(String[] args) {Zi z=new Zi();z.show();}
}
class Fu{String name="Fu";String hobby="喝茶";
}
class Zi extends Fu{String name="zi";String game="吃鸡";public void show(){//如何打印ziSystem.out.println(name);//从局部位置开始往上找//如何打印FuSystem.out.println(super.name);//从本类成员位置开始往上找//如何打印喝茶System.out.println(super.hobby);//从父类成员位置开始往上找//如何打印吃鸡System.out.println(game);}
}
成员方法的访问特点
直接调用满足就近原则:谁离我近,我就调用谁
super调用,直接访问父类
方法重写
当父类的方法不能满足子类现在的需求时,需要进行方法重写。
书写格式:
在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类的这个方法是方法重写。
@Override重写注解:
是放在重写后的方法上的,校验子类重写时语法是否正确。
package oop.Extends.a05oopextendsdemo05;
public class Test5 {public static void main(String[] args) {
OverseasStudent s=new OverseasStudent();
s.lunch();}
}
class Person{public void eat(){System.out.println("吃米饭,吃菜");}public void drink(){System.out.println("喝开水");}
}
class OverseasStudent extends Person{@Overridepublic void eat(){System.out.println("吃意大利面");}@Overridepublic void drink(){System.out.println("喝凉水");}public void lunch(){eat();drink();super.eat();super.drink();}
}
方法重写的注意事项和要求
1.重写方法的名称、形参列表必须与父类中的一致.
2.子类重写父类方法时,访问权限子类必须大于等于父类.
3.子类重写父类方法时,返回值类型必须小于等于父类.
4.建议:重写的方法尽量和父类保持一致.
5.只有被添加到虚方法表中的方法才能被重写.
package oop.Extends.a06oopextendsdemo06;
public class Dog {public void eat(){System.out.println("狗在吃狗粮");}public void drink(){System.out.println("狗在喝水");}public void lookHome(){System.out.println("狗在看家");}
}
package oop.Extends.a06oopextendsdemo06;
public class Husky extends Dog{public void breakHome(){System.out.println("哈士奇又在拆家了");}
}
package oop.Extends.a06oopextendsdemo06;
public class SharPei extends Dog{@Overridepublic void eat(){super.eat();//吃狗粮System.out.println("沙皮狗在吃骨头");}
}
package oop.Extends.a06oopextendsdemo06;
public class ChineseDog extends Dog{@Overridepublic void eat(){System.out.println("吃剩饭");}
}
package oop.Extends.a06oopextendsdemo06;
public class Test {public static void main(String[] args) {Husky h=new Husky();h.eat();h.drink();h.breakHome();h.lookHome();ChineseDog cd=new ChineseDog();cd.eat();cd.drink();cd.lookHome();}
}
相关文章:
面向对象进阶-继承
继承中:成员变量的访问特点 就近原则:谁离我近我就访问谁,先在局部位置找,找不到然后在到本类成员位置到,如果本类成员位置找不到就到父类成员位置找,逐级往上找。 package oop.Extends.a03oopextendsdemo03; public…...
[NOIP2012 普及组] 摆花
[NOIP2012 普及组] 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m m m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的 n n n 种花,从 1 1 1 到 n n n 标号。为了在门口展出更…...
系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:外层作用域和全局变量]
分类目录:《系统学习Python》总目录 闭包函数(带有外围def作用域引用和嵌套的def)常常可以实现相同的效果,特别是用于像被装饰的最初咱数这样的静态数据时。然而在下面这个例子中,我们也需要外层作用域中的一个计数器&…...
Tekton
一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案,它由提供构建块的 Tekton Pipelines,Tekton 作为 Kubernetes 集群上的扩展安装和运行,包含一组 Kubernetes 自定义资源,这些资源定义了您可以为…...
2023,TEVC,A Competitive and Cooperative Swarm Optimizer for Constrained MOP
Abstract 通过元启发式方法求解多目标优化问题( MOPs )得到了广泛的关注。在经典变异算子的基础上,发展了几种改进的变异算子,以及多目标优化进化算法。在这些算子中,竞争群优化算法(CSO)表现出良好的性能。然而,在处理目标空间较…...
java设计模式学习之【中介者模式】
文章目录 引言中介者模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用聊天室示例代码地址 引言 想象一下一座忙碌的机场,各种飞机需要起飞、降落,而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统,这将是一…...
C++三剑客之std::variant(一)
1简介 C17的三剑客分别是std::optional, std::any, std::vairant。今天主要讲std::variant。std::variant的定义如下: template< class... Types > class variant; 类模板 std::variant 表示一个类型安全的联合体(以下称“变化体”)…...
新火种AI|AI正在让汽车成为“消费电子产品”
作者:一号 编辑:小迪 AI正在让汽车产品消费电子化 12月28日,铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军,在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…...
Docker六 | Docker Compose容器编排
目录 Docker Compose 基本概念 使用步骤 常用命令 Docker Compose Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose可以管理多个Docker容器组成一个应用。 需要定义一个YAML格式的配置文件docker-compose.yml,…...
Oraclelinux部署Oracle服务
采用图形化界面 user用户 oracle用户 #清屏 clear #设置主机名 hostnamectl set-hostname ceshidb sed -i 1,2 s/^/#/ /etc/hosts echo "127.0.0.1 ceshidb" >> /etc/hosts echo "::1 ceshidb" >> /etc/hosts ping -c 5…...
Ubuntu安装K8S(1.28版本,基于containrd)
原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档:这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…...
Linux 线程安全 (2)
文章目录 线程同步概念条件变量使用生产消费模型信号量的使用读写锁的使用 Linux 线程安全 (1) 线程同步概念 竞态条件:因为时序问题,而导致程序异常. 饥饿问题:只使用互相锁保证线程安全时,锁资源总被某…...
异或运算^简述
异或运算:^ 两个变量之间异或运算时,其二进制位相同取0,不同取1. 示例:a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001) 据此可以推算异或运算"^"有以下特性: a^a0 (0b 0000 0000)…...
Google Play上架:2023年度总结报告
今天是2023年的最后一个工作日,今天用来总结一下2023年关于谷歌商店上架的相关政策改动和对应的拒审解决方法。 目录 政策更新与改动2023 年 2 月 22 日2023 年 4 月5 日2023 年 7 月 12 日2023 年 10 月 25 日 开发者计划政策拒审邮件内容和解决办法 政策更新与改…...
JAVA进化史: JDK10特性及说明
DK 10(Java Development Kit 10)是Java平台的一个版本,于2018年3月发布。尽管相对于之前的版本,JDK 10的变化较为温和,但仍然引入了一些新特性和改进,以下是其中一些主要特性,并带有相应的示例说…...
第二百三十四回
文章目录 1.概念介绍2.使用方法2.1 NumberPicker2.2 CupertinoPicker 3.示例代码4.内容总结 我们在上一章回中介绍了"如何在任意位置显示PopupMenu"相关的内容,本章回中将介绍如何实现NumberPicker.闲话休提,让我们一起Talk Flutter吧。 1.概念…...
{MySQL} 数据库约束 表的关系 新增删除 修改 查询
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库约束1.1约束类型:1.2 NULL约束1.3unique 唯一约束1.4 DEFAULT:默认值约束1.5 PRIMARY KEY:主键约束1.6 FOREIGN K…...
【JVM】虚拟机的组成+字节码文件组成+类的生命周期
什么是JVM? JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行:对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理:自动为对象、方法等分配内存,自动…...
pip 下载太慢的解决办法,pip换国内源,pip换源
用pip安装python包的时候,如果系统没有进行相关设置,则用的源服务器是国外的,在国内访问非常慢,我们需要换成国内的源服务器,pip换源通过如下命令: pip config set global.index-url <源地址> 一、…...
OKCC语音机器人的人机耦合来啦
目前市场上语音机器人的外呼形式基本就分为三种,一种纯AI外呼,第二种也是目前主流的AI外呼转人工。那么第三种也可能是未来的一种趋势,人机耦合,或者也叫人机协同。 那么什么是人机耦合呢? 人机耦合是为真人坐席创造相…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
