Java中继承与多态 📅 发布时间:2026/7/14 11:29:57 👁️ 浏览次数: 一.什么是继承1.1 概念继承就是让一个类子类/派生类复用另一个类是父类/基类)的属性和方法同时可以拓展自己独有的方法或功能关键字extends关系is-a 子类is a 父类1.2继承的基本语法class ParentClass { // 父类的属性和方法 } class ChildClass extends ParentClass { // 子类可以添加新的属性和方法或重写父类方法 }1.3继承的特点1.一个子类只能有一个直接父类这个父类有可能继承了其他的父类2.子类拥有父类的private的属性和方法3.子类可以重写父类的方法1.4 super关键字如果我们想要在子类中访问父类的成员变量方法或者或在子类构造函数中调用父类构造函数直接访问是不行的这时我们可以通过super这个 关键字来解决这个问题1.调用父类构造方法父子父子必然是 先有父后有子也就是先要初始化父类之后接着才能去初始化子的各种属性方法所以子类构造方法中第一条语句必须是super()来调用父类的构造方法这里有里可能有人提问我没写super()这个语句编译器痘能正常编译代码答那是因为当我们没写super()时编译器会自动添加一个无参数的构造方法但是如果父类的构造方法是带参数的那么子类的构造的方法中的super(参数)这个语句就不能省略否则编译器就会报错示例1class Parent {public String nameParent(String name) {this.name nameSystem.out.println(Parent constructor);}}class Child extends Parent {Child() {super(name); // 显式调用父类无参构造函数System.out.println(Child constructor);}}示例2// 父类Animalpublic class Animal {public String name;public Animal(String name) {this.name name;}public void eat() {System.out.println(name is eating.);}}// 子类Dog继承Animalpublic class Dog extends Animal {public Dog(String name) {super(name); // 调用父类构造方法}Overridepublic void eat() {System.out.println(getName() eats dog food.);}public void bark() {System.out.println(Woof!);}}二 .方法的重写------ 继承的灵魂我们要知道继承不只是为了简单的属性复用更重要的是改写父类的行为就是方法的重写2.1 重写规则1. 方法名、参数列表、返回值类型必须和父类完全一致2.子类的方法权限不能低于父类的权限例如父类public子类不能是private3.不能重写父类 private、static、final修饰的方法重写示例public class Animal {// 父类方法public void makeSound() {System.out.println(动物在吃饭);}}public class Cat extends Animal {// 重写父类方法Overridepublic void makeSound() {System.out.println(小猫在吃鱼);}}三.什么是多态3.1定义多态指多种形态同一个行为在不同子类上表现出不同的形态和行为简单来说就是父类的引用指向子类的对象 这也被称为向上转型父类 引用名 new 子类();例如Animal animal new Cat此时就可以通过父类的引用来调用子类中重写父类的方法3.2多态的3个前提1. 必须有继承关系2. 子类必须重写父类的方法3. 父类的引用指向子类对象示例class Animal {public void eat() {System.out.println(动物吃东西);}}class Dog extends Animal {Overridepublic void eat() {System.out.println(狗吃骨头);}}class Cat extends Animal {Overridepublic void eat() {System.out.println(猫吃鱼);}}public class PolymorphismDemo {public static void main(String[] args) {// 多态父类引用指向子类对象Animal animal1 new Dog();Animal animal2 new Cat();// 调用的是子类重写后的方法animal1.eat(); // 狗吃骨头animal2.eat(); // 猫吃鱼}}总结1.继承解决代码复用子类拓展父类2.重写子类修改父类的行为3.多态父类引用指向子类对象同意行为不同实现
重要通知!!2026年湖北省直部分工程专业职称水平能力测试报名时间已出 重磅消息,2026年度湖北省直部分工程高、中级职称水平能力测试报名公告已出!! ⚠注意:这是湖北省直以及下面地级市(没有副高评审权限的地级市)申报部分工程副高职称需要报名此次水测,以及湖北省直… 2026/7/12 22:46:44
西门子S7-1200 TCP通讯数据收发功能,无缝连接视觉相机中控机等外围设备,附程序、软件及... 西门子S7-1200用TCP通讯#收发数据,可与视觉相机、中控机等外围设备无缝连接。 含程序、软件、说明书。西门子S7-1200的TCP通讯功能简直是工业现场设备联动的瑞士军刀。最近帮客户调试视觉检测线,用PLC直接和工业相机、MES系统玩起了数据交换,… 2026/7/11 23:04:09
matlab遗传算法GA求解CVRP带容量限制(有能力约束)的车辆路径问题(三),采用锦标赛选... matlab遗传算法GA求解CVRP带容量限制(有能力约束)的车辆路径问题(三),采用锦标赛选择和改进变异操作,使用相关vrp数据进行算例求解,求得最优路线长度1167.63km,所需车辆数5。 &#… 2026/7/13 8:52:45
WorkshopDL:终极Steam创意工坊下载解决方案,无需Steam客户端畅享海量模组 WorkshopDL:终极Steam创意工坊下载解决方案,无需Steam客户端畅享海量模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法在GOG、Epic Games … 2026/7/14 11:29:19
商用密码应用安全性评估量化评估规则:从标准解读到实战应用 1. 商用密码评估为什么需要量化规则?第一次接触密评的朋友常会问:为什么不能直接用"符合/不符合"简单判断?我刚开始做密码安全评估时也这么想,直到在某政务云项目踩了坑。当时给某省级医保系统做评估,发现密… 2026/7/14 11:27:16
NLP入门实战:从零构建中英文分词与词性标注工具链 1. NLP入门基础:分词与词性标注是什么?刚接触自然语言处理(NLP)时,很多人会被"分词"和"词性标注"这两个专业术语吓到。其实它们就像我们学语文时的"划分句子成分"和"判断词性"… 2026/7/14 11:27:16
C++ unique_ptr智能指针:独占所有权与零开销资源管理实践 1. 项目概述:为什么unique_ptr是C资源管理的基石在C的世界里,手动管理内存就像在雷区里跳舞,一个new和delete的疏忽,轻则内存泄漏,程序像得了“肥胖症”一样越来越慢;重则野指针崩溃,直接“原地… 2026/7/14 11:25:15
动静之间:现代深度学习框架的融合演进与实战选择 1. 深度学习框架的演进:从对立到融合 十年前我刚入行时,TensorFlow和PyTorch的争论就像"甜咸豆腐脑"之争一样激烈。当时团队选型时总要面临灵魂拷问:要性能还是要灵活性?这个问题如今终于有了新答案。 静态图框架像提前… 2026/7/14 11:25:15
TPS7A52-Q1汽车级LDO:为雷达与射频系统打造超低噪声电源方案 1. 项目概述:为什么雷达与射频系统需要一个“超级安静”的电源?在汽车电子领域,尤其是高级驾驶辅助系统(ADAS)和自动驾驶系统中,毫米波雷达传感器和射频前端模块正变得越来越普遍。这些系统的工作频率动辄几… 2026/7/14 11:23:14
XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南 1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am… 2026/7/14 0:05:14
2026普通文员学数据分析的价值 一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a… 2026/7/14 0:05:14
2026从计划员到主管,生产管理者学数据分析有用吗? 一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&… 2026/7/14 0:05:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/13 9:31:08
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41