【JAVA面向对象编程】--- 探索子类如何继承父类

🌈个人主页: Aileen_0v0
🔥学习专栏: Java学习系列专栏💫个人格言:"没有罗马,那就自己创造罗马~"
目录
继承
继承的普通成员方法调用 及 普通成员变量修改
构造方法的调用
子类构造方法

继承
package Inherit;class Animal {public String name;public int age;public void eat() {System.out.println(name+" 正在吃饭!");}
}class Dog extends Animal{public int count;public void wangwang() {System.out.println(name+"正在叫!");}}class Cat extends Animal{public void miaomiao() {System.out.println(name+ "正在苗苗叫!");}}public class Test3 {public static void main(String[] args) {Dog dog = new Dog();dog.name = "坦克";dog.eat();dog.wangwang();Cat cat = new Cat();cat.name = "小咪";cat.eat();cat.miaomiao();}}
继承的普通成员方法调用 及 普通成员变量修改

构造方法的调用
package Inherit;class Ani {public String name;public int age;public void eat(){System.out.println(name + "吃饭!");}
}class HotDog extends Ani{//傻狗 是狗的属性public String silly; public String name = "hello";public void houseGuard() {System.out.println(super.name+"正在看家护院!");}
}
//1.this 会优先访问子类自己的,若子类无 ,才会访问父类的.
//2.super 只是一个关键字,在代码层面上,能够达到易读效果,可以用来访问父类的内容及地址但是不能说成`是`引用class Miao extends Ani{public void catchMouse(String name) {System.out.println(name + "抓杰瑞!");}@Overridepublic String toString() {return "miao 抓老鼠";}public Miao() {System.out.println(name + "抓老鼠!");}public Miao(String name) {this.name = name;System.out.println(name + "抓老鼠!");}
}public class Test2{public static void main(String[] args) {Miao miao = new Miao();Miao miao1 = new Miao("喵喵");new Miao("Tom"). catchMouse("🐱");HotDog hotdog = new HotDog();System.out.println(hotdog);}
}
子类构造方法
面试题:
1.this 会优先访问子类自己的,若子类无 ,才会访问父类的.
2.super 只是一个关键字,在代码层面上,能够达到易读效果,可以用来访问父类的内容及地址但是不能说成是引用
this 访问的范围大于 super
package Inherit;class Animal {public String name;public int age;// public Animal() { // // }//父类调用含参的构造方法--->//报错信息:Implicit super constructor Animal()//is undefined for default constructor. //Must define an explicit constructorpublic Animal(String name , int age) {this.name = name;this.age = age;System.out.println("Animal(String,int)");}public void eat() {System.out.println(name+" 正在吃饭!");}public static void staticFunc() {} }class Dog extends Animal{public int count;public void wangwang() {System.out.println(this.name+"正在叫!");//super.eat();--->利用super调用父类方法staticFunc();}public Dog(String name , int age,int count) {//1.先帮助父类部分初始化 必须放到第一行super(name,age);//2.再初始化自己this.count = count; System.out.println("Dog(String,int,int)");}}class Cat extends Animal{public Cat() {super("mmi", 10);}public Cat(String name,int age) {super(name,age);}public void miaomiao() {System.out.println(name+ "正在苗苗叫!");}}public class Test3 {public static void main(String[] args) {Dog dog = new Dog("hello",10,3);dog.wangwang();}在子类变量中访问父类的变量和方法
注意事项:
1.当调用含参的构造方法时系统就不会自动调用无参构造方法
2.对象属性的初始化一定得调用构造方法的
3.子类构造方法:当我们构造Dog时要先调用它的构造方法--->
(1).先帮助父类初始化(通过super(属性)),(2).再通过this.属性 = ...初始化属性。
4.如果子类想要调用父类的静态构造方法,可以在子类中通过方法名()进行访问
静态里面,不能用this 也不能用super
注意:子类构造方法中会默认调用无参构造方法: super(),
用户没有写时,编译器会自动添加,而且super()必须是子类构造方法的第一句, 并且只能出现一次。
5.
【不带参数默认叫咪咪,带参数需要自己传】 父类初始化虽然执行了父类的构造方法,但没有生成父类对象,这里只是帮助子类初始化从父类继承过来的属性。

总结:
在子类构造方法中,并没有写任何关于基类构造的代码,但是在构造子类对象(穿件对象)时,先执行基类(父类)的构造方法,然后执行子类的构造方法,
因为:
**子类对象中成员是有两部分组成的,基类继承下来的以及子类新增加的部分。父子父子肯定是先有父再有子,所以在构造子类对象时候 ,先要调用基类的构造方法,将从基类继承下来的成员构造完整,然后再调用子类自己的构造方法,将子类自己新增加的成员初始化完整**。
注意:
1,若父类显式定义无参或者默认的构造方法,在子类构造方法第一行默认有隐含的super(调用,即调用基类构造方法
2.如果父类构造方法是带有参数的,此时需要用户为子类显式定义构造方法,并在子类构造方法中选择合适的父类构造方法调用,否则编译失败。
3.在子类构造方法中,super(...)调用父类构造时,必须是子类构造函数中第一条语句。4.super(...)只能在子类构造方法中出现一次,并且不能和this同时出现


相关文章:
【JAVA面向对象编程】--- 探索子类如何继承父类
🌈个人主页: Aileen_0v0🔥学习专栏: Java学习系列专栏 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 继承 继承的普通成员方法调用 及 普通成员变量修改 构造方法的调用 子类构造方法 继承 package Inherit;class Animal …...
从浏览器控制台发送get,post请求
---------------------get请求--------------------------- fetch(url, { method: get, }) .then(response > response.json()) .then(data > { // 获取到响应的数据后的处理逻辑 console.log(data); }) .catch(error > { // 请求发生错误的处理逻…...
海外问卷调查怎么批量做?可以用指纹浏览器吗?
海外问卷调查通常是指产品与品牌上线时,基于消费者、市场调查而组织的问卷调查,包括个人、企业或其他组织,以获取关于市场、消费者行为、产品需求、社会趋势等方面的见解。 通常,研究人员或组织会设计一份问卷,通过在线…...
HarmonyOS 位置服务开发指南
位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。这些习以为常的活动,都离不开定位用户终端设备的位置。 当用户处于这些丰富的使用场景中时,系统的位置能力…...
ThinkPHP6学生选课管理系统
有需要请加文章底部Q哦 可远程调试 ThinkPHP6学生选课管理系统 一 介绍 此学生选课管理系统基于ThinkPHP6框架开发,数据库mysql8,前端bootstrap。系统角色分为学生,教师和管理员。学生登录后可进行选课,教师登录后可查看选课情况…...
uniapp如何与原生应用进行混合开发?
目录 前言 1.集成Uniapp 2.与原生应用进行通信 3.实现原生功能 4.使用原生UI组件 结论: 前言 随着移动应用市场的不断发展,使用原生开发的应用已经不能满足用户的需求,而混合开发成为了越来越流行的选择。其中,Uniapp作为一种跨平台的开…...
Csharp(C#)无标题栏窗体拖动代码
C#(C Sharp)是一种现代、通用的编程语言,由微软公司在2000年推出。C#是一种对象导向的编程语言,它兼具C语言的高效性和Visual Basic语言的易学性。C#主要应用于Windows桌面应用程序、Windows服务、Web应用程序、游戏开发等领域。C…...
李宏毅2020机器学习课程笔记(二)- 深度学习
相关专题: 李宏毅2020机器学习资料汇总 本系列笔记: 李宏毅2020机器学习课程笔记(一)- 分类与回归李宏毅2020机器学习课程笔记(二)- 深度学习李宏毅2020机器学习课程笔记(三)- CNN、半监督、RNN文章目录 3. Deep LearningBrief Introduction of Deep Learning(P12)Ba…...
解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点
解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点 1,蓝屏显示问题1.1,蓝屏1,清楚显示1.2,蓝屏2,模糊显示 2,排除故障问题3,解决蓝屏的有效方法 1&a…...
connectivity_plus 安卓build的时候报错
报错信息 当前版本:connectivity_plus 5.0.2 Flutter 3.13.6 Dart 3.1.3 A problem occurred configuring project :connectivity_plus. > Failed to create Jar file /Users/wangxiangyu/.gradle/caches/jars-8/fef84f4f98be9f93b0b593ccb1e3e207/lint-model-…...
系统部署安装-Centos7-Kafka
文章目录 安装离线安装下载安装 安装 离线安装 下载 可以前往kafka的官网进行下载 https://kafka.apache.org/downloads安装 1.创建安装目录 mdkir /opt/software/kafka mkdir /opt/kafka 2.解压 sudo tar -xzf kafka_2.12-3.6.0.tgz -C /opt/kafka --strip-components…...
94.STM32外部中断
目录 1.什么是 NVIC? 2.NVIC寄存器 3.中断优先级 4.NVIC的配置 设置中断分组编辑 配置某一个中断的优先级 5.什么是EXTI 6.EXTI和NVIC之间的关系 7.SYSCFG 的介绍 1.什么是 NVIC? NVIC是一种中断控制器,主要用于处理 ARM Cort…...
【Linux】快速上手自动化构建工具make/makefile
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.什么是make / makefile 2…...
HarmonyOS
基本概念 1、ARKTS是由ArkUI框架提供,它是声明式UI 2、声明式UI的思想:- 关心描述UI的呈现结果,而不关心过程;- 状态驱动视图更新自定义组件的组成 关键字说明举例struct声明组件名struct ToDolist 代办组件EntryComponent装饰…...
Docker安装Oracle18c 坑已排完,放心食用
Docker安装Oracle18c 坑已排完,放心食用 0、有问题可邮件我1、拉取 oracle18c 镜像, 推荐使用 zhengqing版本的镜像2、启动容器3、等待容器启动完成, 这一步很慢很慢, 别着急4、进入容器5、修改管理员密码6、查看并设置环境变量7、设置监听模式支持以SID方式连接PDB数据库8、使…...
2023年第十二届数学建模国际赛小美赛C题雪崩防范求解分析
2023年第十二届数学建模国际赛小美赛 C题 雪崩防范 原题再现: 雪崩是极其危险的现象。现在,我们对雪崩是如何形成的已经有了很好的理解,但是我们还不能详细地预测雪崩发生的原因、时间和地点。村庄和道路可以通过各种方式防止雪崩。避免在脆…...
Nginx Openresty通过Lua+Redis 实现动态封禁IP
需求 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单中的 IP ,我们将拒绝提供服务。并且可以设置封禁失效时间 环境准备 linux version: centos7 / ubuntu 等 redis version: 5.0.5 nginx version: nginx…...
.Net 字符集与编解码
0 .NET 字符集编解码 .Net 内部使用的字符集是Unicode,如果需要编码为其他诸如GBK、UTF8编码,可以通过Encoding 类来实现。 using System.Text;void PrintBytes(byte[] bytes) {foreach (var b in bytes){Console.Write("{0:X} ", b);}Conso…...
Spinnaker 基于 jenkins 触发部署
jenkins job 触发部署 将 Jenkins 设置为 Spinnaker 中的持续集成 (CI) 系统可让您使用 Jenkins 触发管道、向管道添加 Jenkins 阶段或向管道添加脚本阶段。 前置要求: 已在kubernetes中部署spinnaker已准备可用的jenkins实例 启用 jenkins触发器 官方文档&…...
FLASK博客系列6——数据库之谜
我们上一篇已经实现了简易博客界面,你还记得我们的博客数据是自己手动写的吗?但实际应用中,我们是不可能这样做的。大部分程序都需要保存数据,所以不可避免要使用数据库。我们这里为了简单方便快捷,使用了超级经典的SQ…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...




