当前位置: 首页 > news >正文

java——继承(一)

一:匿名对象

        只能使用一次,每一次使用都会创建一个新的对象,默认值和数组的默认值的规则相同。所以适用于调用一次对象的情况:

public class ClassAnonymous {String name;public void show(){System.out.println(name+"真厉害");}
}
public class AnonymousDemo {public static void main(String[] args) {new ClassAnonymous().name="刘备";new ClassAnonymous().show();}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=5773:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Test\classDemo\out\production\classDemo AnonymousDemo
null真厉害进程已结束,退出代码0

        我明明输入了姓名,可是在我调用的时候输出的确是 null, 这是因为每一次 new 都相当于创建了一次对象;

二:继承

继承是多态的前提:

继承所要解决的就是:共性问题;

被继承的称为 父类(基类/超类);需要继承的是 子类(派生类)

(1)特点

子类可以拥有父类的内容;

子类也可以拥有自己特殊的内容:

(2)关键字:extends 

        我们使用关键字 extends 使子类“继承父类”,在使用时,就将子类当作父类使用;

        我们可以看到,子类 Mangay 里面什么都没有,但是创建它的对象时,却可以调用 父类的 earn方法。因此我们说,子类在使用时,就将当作父类使用;

public class Manpeople {private String name;private int age;public void earn(){System.out.println("好好挣钱!");}
}
public class Mangay extends Manpeople{}
public class Mandemo {public static void main(String[] args) {Mangay m=new Mangay();m.earn();}
}

三:成员变量调用特点

1.一般的继承

父类也是一般类,也可以拥有自己的对象,来调用自己的方法;

子类的对象可以调用自己的方法,也可以调用父类的方法;

public class Fu {String name;int age;public void life(){System.out.println("生活" + "很美好");}
}
public class Zi extends Fu{String sex;public void eat(){System.out.println("活得好就行!");}
}
public class FuZiDemo {public static void main(String[] args) {Fu fu=new Fu();fu.life();  //父类自己的方法System.out.println("===========");Zi z=new Zi();z.eat();    //子类自己的方法z.life();   //子类继承父类的方法}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=11226:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
生活很美好
===========
活得好就行!
生活很美好进程已结束,退出代码0

 2.父类子类的成员变量重名

2.1使用对象直接调用重名的成员变量

子类有该成员变量,优先调用子类的成员变量,没有再从父类中找;

public class Fu {String name;int age=100;public void life(){System.out.println("生活" + "很美好");}
}
public class Zi extends Fu{String sex;int age=10;public void eat(){System.out.println("活得好就行!");}
}
public class FuZiDemo {public static void main(String[] args) {Fu fu=new Fu();System.out.println(fu.age);Zi z=new Zi();System.out.println(z.age);//子类有,优先调用子类的变量,没有往上找}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=11822:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
100
10

2.2使用成员方法间接调用重名的成员变量:

毫无疑问,父类的对象调用自己的成员方法时使用的是自己的成员变量;子类的对象调用自己的成员方法时使用的是自己的成员变量;

但是,子类的对象调用父类的方法时,使用的是父类的成员变量,即方法属于谁,就使用谁的成员变量;

public class Fu {String name;int age=100;public void life(){System.out.println("生活" + age+"很美好");}
}
public class Zi extends Fu{String sex;int age=10;public void eat(){System.out.println(age+"活得好就行!");}
}
public class FuZiDemo {public static void main(String[] args) {Fu fu=new Fu();System.out.println(fu.age);Zi z=new Zi();System.out.println(z.age);//子类有,优先调用子类的变量,没有往上找fu.life();//父类自己的方法z.eat();//子类自己的方法z.life();//子类父亲中的方法}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=11916:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
100
10
生活100很美好
10活得好就行!
生活100很美好进程已结束,退出代码0

(3)总结 

我们来总结一下:

对于使用对象直接调用重名的成员变量时,关键看谁有,即子类有就调用子类的,没有就往父类中找;

对于使用方法间接调用重名的成员变量时,成员变量属于谁,就调用谁中的成员变量;

四:子类、父类和子类局部变量重名

局部变量的调用:直接输出 ;

本类成员变量的输出:this.成员变量 ;

父类成员变量的输出:super. 成员变量;

public class Fu01 {String name="刘备备";
}
public class Zi01 extends Fu01 {String name="曹操操";public void life(){String name="吕小布";System.out.println(name);System.out.println(this.name);System.out.println(super.name);}
}
public class Demo01 {public static void main(String[] args) {Zi01 z=new Zi01();z.life();}
}

 五:成员方法的调用

成员方法重名时,子类有,调用子类的成员方法;子类没有,再往上找;

public class Fu01 {String name="刘备备";public void life(){System.out.println("这是父类的成员方法");}
}
public class Zi01 extends Fu01 {String name="曹操操";public void life(){System.out.println("这是子类的成员方法");}
}
public class Demo01 {public static void main(String[] args) {Zi01 z=new Zi01();z.life();//子类有,优先调用子类的成员方法}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=12667:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Test\classDemo\out\production\classDemo Demo01
这是子类的成员方法进程已结束,退出代码0

相关文章:

java——继承(一)

一:匿名对象 只能使用一次,每一次使用都会创建一个新的对象,默认值和数组的默认值的规则相同。所以适用于调用一次对象的情况: public class ClassAnonymous {String name;public void show(){System.out.println(name"真厉…...

【Linux】进程间通信方式之管道

🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误的话,还望指出&…...

【Linux】yum与vim

文章目录 软件包管理器:yumLinux安装和卸载软件包Linux中的编辑器:vimvim下的底行模式vim下的正常模式vim下的替换模式vim下的视图模式vim下的多线程 软件包管理器:yum yum其实就是一个软件,也可以叫商店 和你手机上的应用商店或app store一…...

苍穹外卖Day06笔记

疯玩了一个月,效率好低,今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency? 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖,而这个依赖低层就引入了httpclinet的依赖,根据依…...

Maximo 使用 REST API 创建 Cron Task

接前面几篇文章,我没有了 automation script 以后,有时候需要让其定期自动执行,这时候就可以通过 Cron Task 来实现了。 通过Maximo REST API 来创建 Cron Task request: POST {{base_url}}/api/os/mxapicrontaskdef?apikey{{…...

【镜像仿真篇】磁盘镜像仿真常见错误

【镜像仿真篇】磁盘镜像仿真常见错误 记系统镜像仿真常见错误集—【蘇小沐】 1、实验环境 2023AFS39.E01(Windows11系统镜像)Arsenal Image Mounter,[v3.10.262]‍Vmware Workstation 17 Pro,[v17.5.1]Windows 11 专业工作站版…...

代码随想录算法训练营DAY45|C++动态规划Part7|70.爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数

文章目录 70.爬楼梯(进阶版)⭐️322. 零钱兑换思路CPP代码总结 279.完全平方数思路CPP代码 70.爬楼梯(进阶版) 卡码网:57. 爬楼梯 文章讲解:70.爬楼梯(进阶版) 本题就是典型了完全背包排列问题,…...

Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文&#xff09;---- 目录 一、知识点二、实验&#xff08;一&#xff09;为服务器配置网卡和IP&#xff08;二&#xff09;为服务器安装DHCP服务软件&#xff08;三&a…...

c#读取hex文件方法,相对来说比较清楚

Hex文件解读_c#读取hex文件-CSDN博客 https://wenku.csdn.net/answer/d67f30cf834c435ca37c3d1ef5e78a62?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171498156816800227423661%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&…...

【ytb数据采集器】按关键词批量爬取视频数据,界面软件更适合文科生!

一、背景介绍 1.1 爬取目标 用Python独立开发的爬虫工具&#xff0c;作用是&#xff1a;通过搜索关键词采集油管的搜索结果&#xff0c;包含14个关键字段&#xff1a;关键词,页码,视频标题,视频id,视频链接,发布时间,视频时长,频道名称,频道id,频道链接,播放数,点赞数,评论数…...

三条命令快速配置Hugging Face

大家好啊&#xff0c;我是董董灿。 本文给出一个配置Hugging Face的方法&#xff0c;让你在国内可快速从Hugging Face上下在模型和各种文件。 1. 什么是 Hugging Face Hugging Face 本身是一家科技公司&#xff0c;专注于自然语言处理&#xff08;NLP&#xff09;和机器学习…...

Python网络编程 03 实验:FTP详解

文章目录 一、小实验FTP程序需求二、项目文件架构三、服务端1、conf/settings.py2、conf/accounts.cgf3、conf/STATUS_CODE.py4、启动文件 bin/ftp_server.py5、core/main.py6、core/server.py 四、客户端1、conf/STATUS_CODE.py2、bin/ftp_client.py 五、在终端操作示例 一、小…...

个人银行账户管理程序(2)

在&#xff08;1&#xff09;的基础上进行改进 1&#xff1a;增加一个静态成员函数total&#xff0c;记录账户总金额和静态成员函数getTotal 2对不需要改变的对象进行const修饰 3多文件实现 account。h文件 #ifndef _ACCOUNT_ #define _ACCOUNT_ class SavingAccount {pri…...

2024.04.19校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招&转正实习 | 美团无人机业务部招聘&#xff08;内推&#xff09; 校招&转正实习 | 美团无人机业务部招聘&#xff08;内推&#xff09; 2、校招&实习 | 快手 这些岗位…...

Python并发编程 04 进程与线程基础

文章目录 一、操作系统简介二、进程三、线程四、线程的调用1、示例2、join方法3、setDaemon方法4、继承式调用&#xff08;不推荐&#xff09;5、其他方法 一、操作系统简介 ①操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序&#xff0c;它位于硬件和应用…...

模板引擎Freemarker

什么是模板引擎 根据前边的数据模型分析&#xff0c;课程预览就是把课程的相关信息进行整合&#xff0c;在课程预览界面进行展示&#xff0c;课程预览界面与课程发布的课程详情界面一致。 项目采用模板引擎技术实现课程预览界面。什么是模板引擎&#xff1f; 早期我们采用的…...

刷题训练之模拟

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握模拟算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题训…...

视频监控平台:交通运输标准JTT808设备SDK接入源代码函数分享

目录 一、JT/T 808标准简介 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;协议特点 1、通信方式 2、鉴权机制 3、消息分类 &#xff08;三&#xff09;协议主要内容 1、位置信息 2、报警信息 3、车辆控制 4、数据转发 二、代码和解释 &#xff08;一…...

【C++】多态 — 多态的细节补充(下篇)

前言&#xff1a; 我们学习了多态的形式和如何使用多态&#xff0c;这一章我们将来讲一讲多态的原理… 目录 动态绑定与静态绑定: 动态绑定与静态绑定: 静态绑定又称为前期绑定(早绑定)&#xff0c;在程序编译期间确定了程序的行为&#xff0c;也称为静态多态&#xff0c;比如…...

系统安全与应用【2】

1.开关机安全控制 1.1 GRUB限制 限制更改GRUB引导参数 通常情况下在系统开机进入GRUB菜单时&#xff0c;按e键可以查看并修改GRUB引导参数&#xff0c;这对服务器是一个极大的威胁。可以为GRUB 菜单设置一个密码&#xff0c;只有提供正确的密码才被允许修改引导参数。 实例&…...

EtherCAT总线速度轴控制功能块(COSESYS ST源代码)

测试环境为汇川PLC,型号 AM402-CPU1608TP、伺服驱动器为禾川X3E,具体通信配置可以参考下面文章链接: 1、使能和点动控制 汇川AM400PLC通过EtherCAT总线控制禾川X3E伺服使能和点动控制-CSDN博客文章浏览阅读31次。进行通信之前需要安装禾川X3E的XML文件,具体方法如下:1、汇…...

【码银送书第十九期】《图算法:行业应用与实践》

作者&#xff1a;嬴图团队 01 前言 在当今工业领域&#xff0c;图思维方式与图数据技术的应用日益广泛&#xff0c;成为图数据探索、挖掘与应用的坚实基础。本文旨在分享嬴图团队在算法实践应用中的宝贵经验与深刻思考&#xff0c;不仅促进业界爱好者之间的交流&#xff0c;…...

无监督式学习

1.是什么&#xff1f; 无监督式学习与监督式学习**最大的区别就是&#xff1a;**没有事先给定的训练实例&#xff0c;它是自动对输入的示例进行分类或者分群&#xff1b; 优点&#xff1a;不需要标签数据&#xff0c;极大程度上扩大了我们的数据样本&#xff0c;其次不受监督信…...

docker 安装镜像及使用命令

目录 1. Mysql2. Redis3. Nginx4. Elasticsearch官网指导 docker pull 容器名:版本号 拉取容器, 不指定版本号默认最新的 run 运行 -d 后台运行 -p 3306:3306 -p是port 对外端口:对内端口 –name xyy_mysql 容器名称 -e MYSQL_ROOT_PASSWORD123456 环境变量 -v 系统地址:docker…...

Python运维之多进程!!

本节的快速导航目录如下喔&#xff01;&#xff01;&#xff01; 一、创建进程的类Process 二、进程并发控制之Semaphore 三、进程同步之Lock 四、进程同步之Event 五、进程优先队列Queue 六、多进程之进程池Pool 七、多进程之数据交换Pipe 一、创建进程的类Process mu…...

Redis(无中心化集群搭建)

文章目录 1.无中心化集群1.基本介绍2.集群说明 2.基本环境搭建1.部署规划&#xff08;6台服务器&#xff09;2.首先删除上次的rdb和aof文件&#xff08;对之前的三台服务器都操作&#xff09;1.首先分别登录命令行&#xff0c;关闭redis2.清除/root/下的rdb和aof文件3.把上次的…...

基于springboot+jsp+Mysql的商务安全邮箱邮件收发

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

三.Django--ORM(操作数据库)

目录 1 什么是ORM 1.1 ORM优势 1.2ORM 劣势 1.3 ORM与数据库的关系 2 ORM 2.1 作用 2.2 连接数据库 2.3 表操作--设置字段 2.4 数据库的迁移 写路由增删改查操作 项目里的urls.py: app里的views.py: 注意点: 1 什么是ORM ORM中文---对象-关系映射 在MTV,MVC设计…...

【华为】AC直连二层组网隧道转发实验配置

【华为】AC直连二层组网隧道转发实验配置 实验需求拓扑配置AC数据规划表 AC的配置顺序AC1基本配置(二层通信)AP上线VAP组关联--WLAN业务流量 LSW1AR1STA获取AP的业务流量 配置文档 实验需求 AC组网方式&#xff1a;直连二层组网。 业务数据转发方式&#xff1a;隧道转发。 DHC…...

第 129 场 LeetCode 双周赛题解

A 构造相同颜色的正方形 枚举&#xff1a;枚举每个 3 3 3\times 3 33的矩阵&#xff0c;判断是否满足条件 class Solution {public:bool canMakeSquare(vector<vector<char>>& grid) {for (int i 0; i < 2; i)for (int j 0; j < 2; j) {int c1 0, c…...

河北品牌网站建设/长沙网站优化排名推广

***********************************************声明********************************************** 原创作品&#xff0c;出自 “深蓝的blog” 博客&#xff0c;欢迎转载&#xff0c;转载时请务必注明出处&#xff0c;否则追究版权法律责任。 表述有错误之处&#xff0c;…...

网站注册域名查询/自己做网站如何赚钱

zfrisch..5我喜欢上一个答案&#xff0c;但是我觉得它缺乏代码清晰度&#xff0c;并且没有真正涵盖如何使用标签。我将值移到数据对象数组中以便于声明。我将其他值(例如百分比)明确声明为数据对象的属性或单独的变量。我认为&#xff0c;这更易于阅读。如果您对此感兴趣&#…...

wordpress qq邮箱 smtp/网站数据分析

据官方消息&#xff0c;华为鸿蒙手机操作系统将于6月2日正式发布。同时&#xff0c;还有很多产品会安装鸿蒙操作系统。比如华为最新的智能手表&#xff0c;华为MatePadPro&#xff0c;等等。事实上&#xff0c;对于业界和消费者来说&#xff0c;最关心的还是初始型号商名单。按…...

传奇网站装备动态图怎么做/网站关键词排名seo

ubuntu 10.10以前的操作方法&#xff1a;1 第一步&#xff0c;具体命令及操作如下&#xff1a;sudo vi /etc/init/rc-sysinit.confenv DEFAULT_RUNLEVEL3 <------将原来的env DEFAULT_RUNLEVEL2修改为env DEFAULT_RUNLEVEL32 第二步&#xff0c;具体命令及操作如下&#xff…...

时代设计网 新网站/网站提交收录入口

你认为手机影像能力&#xff0c;上限在哪里&#xff1f;给自己一分钟&#xff0c;仔细思考一下这个问题的答案。我们或许会发现&#xff0c;内心深处有某块石头横亘在那里&#xff0c;让我们对移动影像的上限预估并不高&#xff0c;比如说长焦会模糊&#xff0c;夜拍不自然&…...

厦门市网站建设/如何做seo搜索引擎优化

//变量销毁unset $aa1 99; if(isset($aa1)){ unset($aa1); } var_dump($aa1);//$aa1值为null $ab 23; $ab1 &$ab; var_dump($ab,$ab1);//23 23 $ab1 20; var_dump($ab,$ab1);//20 20 unset($ab); var_dump($ab,$ab1);//null 20...