Java面向对象——继承(超详细讲解)

Java继承超详细 前言 继承是面向对象语法的三大特征之一。继承可以降低代码编写的冗余度,提高编程的效率。通过继承,子类获得了父类的成员变量和方法。一个子类如何继承父类的字段和方法,如何修改从父类继承过来的子类的方法呢。今天我们开始学习有关Java继承的知识。 继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 继承的作用:通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。 阅读详情

一、继承的基本概念

  1. 被继承的类称为父类(超类),继承父类的类都称为子类(派生类)
  2. 继承是指一个对象直接使用另一个对象的属性和方法,但是能继承非私有的属性和方法;
  3. Java只能实现单继承,即一个类只能有一个父类
  4. 构造方法不能被继承。
  5. Protected:受保护的访问权限修饰符,用于修饰属性和方法;也就是专门用于子类继承父类所使用的修饰符;修饰的属性和方法可以被子类继承
  6. 子类可以直接访问父类中的非私有的属性和行为。

    通过 extends 关键字让类与类之间产生继承关系。

  7. class SubDemo extends Demo{}    //SubDemo是子类,Demo是父类

语法:[访问权限修饰符] class 子类名  extends  父类名{

                                                                类体定义}                                  

调用父类的构造方法时,子类必须通过super(~~)调用父类的带参构造方法,

super只能在子类构造方法中的第一句;

二、super关键字

super可以完成以下的操作:

1、使用super调用父类中的属性,可以从父类实例处获得信息。

2、使用super调用父类中的方法,可以委托父类对象帮助完成某件事情。

3、使用super调用父类中的构造方法(super(实参)形式),必须在子类构造方法的第一条语句,调用父类中相应的构造方法,若不显示的写出来,默认调用父类的无参构造方法,比如:super();

下面我们来通过一个例子来更深层次的理解super关键字以及继承关系:

public class text14{
	public static void main(String[] args){
		Bird b = new Bird();
		b.print();
		Cat c = new Cat();
		c.print2();
		b.run();
	}
}
class Animal{
	protected String name;
	protected String sex;
	public void run(){
		System.out.println("动物在跑!");
	}
}
//注意:这里都是无参构造,所以name和sex都是默认值:null
class Bird extends Animal{
	
	public void print(){
	//super.属性	表示调用父类的属性,如果是继承过来的属性,那么super可以省略;
		super.run();	//调用父类的方法;
		System.out.println(super.name +"我是一只鸟,");
	}
	//重写父类的方法:
	public void run(){
		System.out.println("正在天上飞!");
	}
	
}
class Cat extends Animal{
	public void print2(){
		
		System.out.println(sex+"我是一只猫 ");
	}
}

运行结果如下所示:

                        动物在跑!
                        null我是一只鸟,
                        null我是一只猫

                        正在天上飞!

  • super关键字的总结:

  1. super能出现在实例方法和构造方法中。
  2. super的语法是:"super."、"super(" ​ super不能使用在静态方法中。
  3. super,大部分情况下是可以省略的。
  4. 那么​ “ super. ” 什么时候不能省略呢???????? (例如:代码二)

父类 和子类中有共同的属性特征或者方法时,如果想在子类中访问”父类的特征“,super.不能省略。。

super( )只能出现在构造方法第一行,通过当前的构造方法去调用“父类"中 的构造方法,

目的是:创建子类对象的时候,先初始化父类型特征。

super的使用:

  • super.属性名 【访问父类的属性】
  • super.方法名(实参) 【访问父类的方法】
  • super(实参) 【调用父类的构造方法】

如下代码运行结果为:

//1     3      6    5    4

									代码一
public class test{
    public static void main(String args[])  {
        new Son2();          //1     3      6    5    4
    }
}
class father{
    public father(){
        System.out.println("1");
    }
}
//中间人
class Son1 extends father{
    public Son1(){
        System.out.println("2");
    }
    public Son1(String name){
        //这里会默认调用super();
        System.out.println("3");
    }
}
class Son2 extends Son1{
    public Son2(){
        this("name");
        System.out.println("4");
    }
    public Son2(String name){
        this("老六",99);
        System.out.println("5");
    }
    public Son2(String name,int age){
        super("老黑");
        System.out.println("6");
    }
}

注意:这里的代码用到了“ this  关键字” ,如果大家不了解了,我会在下期的文章中讲到,有什么建议的,望各位提出来

时序基础模型Timer-S1:十亿参数如何革新时间序列预测 时间序列预测是数据分析与机器学习中的核心任务,旨在基于历史数据预测未来趋势。其原理在于捕捉数据中的趋势、周期性和季节性等时序依赖关系。这项技术的价值在于赋能业务决策,广泛应用于金融风控、能源管理、物联网监控和供应链优化等关键场景。传统方法依赖针对特定任务的专用模型,面临泛化能力弱和开发成本高的挑战。本文聚焦的时序基础模型,通过在海量跨领域数据上进行预训练,学习时序通用模式,并结合十亿级参数带来的强大容量,实现了性能的显著突破。这种范式转变,使得模型能够像“全科医生”一样,通过少量数据微调即可快速适应新任务, 阅读详情

相关推荐

【IIC通信】Chap.1(I2C)IIC通信原理、IIC读写时序详解

IIC通信以两根连线SDA、SCL实现了完善的全双工同步数据传送, 可以方便地构成多机系统和外围器件扩展系统。

Jie_MSD的博客 2万+

Java面向对象 继承

值得注意的是,Java只支持单继承,即一个子类只能继承一个父类。但一个类可以间接继承其他类,例如:C类继承B类,B类继承A类,则C类间接继承A类。另外,如果一个类没有显式地继承任何类,则默认继承Java SE库中的。Java中的继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。通过继承,子类可以复用父类的代码,减少重复的代码量,并扩展父类的功能。子类可以继承父类的所有非私有成员变量和成员方法,并可以添加自己的新方法和属性。

Code-5的博客 1089

一文读懂 MAVLink、PPM、SBUS:无人机通信协议的工作原理与适用场景

本文系统对比无人机领域三大核心通信协议:MAVLink作为全链路数据协议,支持飞控与地面站的双向通信,适合航拍测绘等专业场景;SBUS是数字化的高效控制协议,具备16通道、抗干扰特性,成为中高端设备标配;PPM作为传统模拟协议,成本低廉但性能有限,适合入门级应用。文章深入解析各协议的工作原理、帧结构、适用场景及调试技巧,指出MAVLink侧重状态监控、SBUS/PPM专注控制指令的互补关系,并给出新手选型建议:入门选PPM,进阶用SBUS,开发必备M

bother3000的博客 7121

java 面向对象三大特性之继承 万字详解(超详细)

可能是优快云上讲解最详细的Java继承篇。因为up没看过别的(bushi)🤡。

优快云 / 稀土掘金/ B站 / GitHub: Cyan_RA9 3449

App 抓包难?Frida Hook 实战:绕过 SSL Pinning (证书绑定) 抓取某大厂 App 核心接口

当我们使用 Charles 抓包 HTTPS 时,本质上是实施了MITM(中间人攻击)。Charles 伪装成服务器,发给 App 一个自己的证书(伪造证书)。Charles 伪装成 App,拿着真正的证书去请求服务器。如果 App 只是简单校验“证书是否由受信任的 CA 签发”,那你把 Charles 的根证书安装到手机系统里,就能骗过它。但是,是 App 内置了服务器证书的Hash(指纹)。

BUG猿的博客 914

【某音电商】protobuf聊天协议逆向

某音电商私信、聊天消息protobuf协议逆向分析与解析

吴秋霖的博客 2314

【Java】面向对象之继承超级详解!!

为了深入了解JAVA的面向对象的特性,今天我们来学习剖析多态。多态在Java中的应用非常广泛,可以大大优化代码,让代码清晰整洁,它需要在继承的前提下让子类将父类中的方法进行重写,最后通过父类对象访问到子类重写的方法实现多态!提到了很多新内容,本篇文章将会详细介绍Java语言中的继承,访问限定符,关键字等相关内容,让我们速速开始吧!!!

2301_77204579的博客 2120

Agentic AI为教育行业赋能,提示工程架构师解析应用潜力

然而,即便是最先进的 LLMs,在面对复杂、动态、需要持续规划和调整的教育场景时,也常常显得力不从心,它们更像是强大的“问答机器”,而非真正意义上的“学习伙伴”或“教学助手”。在教育场景中,传统的 AI 工具可能只能回答学生提出的特定问题,或者根据预设的规则推送一些学习材料。无论您是教育技术领域的开发者、产品经理,还是一线的教育工作者、教育管理者,抑或是对 AI 教育应用充满好奇的研究者,本文都将为您提供宝贵的 insights,助您把握 Agentic AI 时代教育创新的脉搏。

架构师的AI之路,分享AI应用开发架构的学习与实践。 466

Java面向对象之——继承

上期我们对Java封装中的细枝末节进行了一个较为全面的介绍,本期继续面向对象,走进Java中的继承!

LEE180501的博客 7053

增量学习入门:概念、代码示例与应用场景

在当今快速变化的数据环境中,传统的机器学习模型往往需要重新训练以适应新的数据。然而,这种方法不仅耗时耗力,还可能导致模型性能的不稳定。增量学习(Incremental Learning)作为一种新兴的学习范式,能够在新数据到来时动态更新模型,而无需重新训练整个模型。本文将详细介绍增量学习的基本概念、代码示例、应用场景以及需要注意的事项。增量学习作为一种高效的机器学习方法,能够在新数据到来时动态更新模型,具有广泛的应用前景。通过本文的介绍,相信你对增量学习有了初步的了解。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1150

腾讯滑块验证码防水墙 tdc.js 补环境实录

腾讯滑块验证码破解研究摘要 本文记录了破解腾讯防水墙滑块验证码(tdc.js)的全过程。研究重点包括: 流程分析:通过抓包分析验证码完整链路,识别出关键参数collect和eks需从tdc.js虚拟机获取 环境模拟:采用渐进式补环境方法,针对字节码虚拟机特性构建完整的window对象,包括navigator、screen、canvas等API的精确模拟 核心破解:成功调用TDC.getData()和TDC.getInfo()获取关键参数,解决POW计算和滑块缺口识别问题 优化调整:针对errorCode 5

码王吴彦祖的博客 223

Java面向对象—继承

Java面向对象

JavaMrs的博客 460

C#WPF常用的9种布局方式详解

本文介绍WPF中常用的九种布局,Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、ScrollViewer、ViewBox、Border。

qq_30725967的博客 1万+

Java 面向对象三大特性(封装、继承、多态)超详细讲解|面试+开发必备

大家好,这篇文章专门给 Java 初学者整理面向对象三大核心特性:封装、继承、多态,内容包含概念、语法、代码示例、面试考点、易错点,完全对标课堂笔记与企业开发规范,适合发 优快云、做学习总结、备战笔试面试。这篇文章把封装、继承、多态从课堂笔记整理成优快云 标准博客,结构清晰、示例完整、面试点全覆盖,适合 Java 初学者夯实基础、复习备考。System.out.println("动物吃东西");

Tong20061011的博客 520

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[JAVA进阶]一文理解面向对象编程(超详细2w字巨作!)

本文《面向对象编程的超详细讲解》主要介绍了Java面向对象编程的核心概念和实践方法。文章首先通过简单示例展示面向对象编程的基本思想,强调其符合人类思维习惯的优势。重点讲解了类和对象的设计与使用,包括类定义、对象创建、成员变量和方法调用等基础知识。文章还详细阐述了封装的概念及其重要性,介绍了private关键字在数据保护中的作用。此外,文中提供了多个实际案例,如手机类、学生类和女朋友类的设计实现,帮助读者理解如何将现实事物转化为Java类。最后,文章强调了对象设计原则:对象应封装对应数据并提供相应行为。全文内

爱因斯晨的博客 1769

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java面向对象之继承,深度剖析继承的使用

让我们一起领略面向对象之继承的奥妙吧!

一年,我很需要这一年 2173

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【JAVA |继承与多态】JAVA中的继承与多态超详细!!

封装open in new window继承open in new window多态open in new window。三大特征紧密联系而又有区别,合理使用继承能大大减少重复代码,提高代码复用性。

YKX0000的博客 2497

Java面向对象的三大特性:封装、继承、多态(详细讲解版)

本文介绍了面向对象编程的三大特性:封装、继承和多态。封装通过隐藏实现细节提高代码安全性;继承实现代码复用和扩展;多态则允许不同对象以不同方式执行相同操作。文章详细讲解了每个特性的概念、实现方式和优点,并提供了Java代码示例说明具体应用场景和使用方法。

2301_77311065的博客 1724

Java面向对象(oop)继承特性,代码讲解

** * 标题:Java面向对象(oop)继承特性 * 作者:Nstar * 时间:2020年3月8日 * 内容: * 问:什么是Java面向对象继承特性? * 答:1.Java继承关系有点像动物继关系,所有狗的品种继承于犬科 * 2.首先我们要有一个类作为基类,我们也可以将基类称为父类,之后编写的类都可以继承基类 * 3.子类继承父类的时候,这个子类可以拥有父类的一切...

Nstar的技术博客 3642

Java面向对象三大特性封装、继承、多态(超详细)

文章目录面向对象类和对象类对象匿名对象方法方法重载递归方法封装构造器this关键字import关键字继承继承可以分为单一继承、间接继承和分层继承extends关键字super关键字方法重写多态性虚拟方法instanceof关键字equals关键字toString()static关键字final关键字abstract关键字接口(interface关键字)和实现(implements关键字)补充包装类(封装类)基本数据类型、包装类、String相互转换基本数据类型转换成包装类(调用包装类的构造器)包装类转换成基

曾经觊觎 1607

Java面向对象编程【高级篇】之继承

本文介绍了Java面向对象编程中的继承机制,包括继承的定义、语法、权限修饰符及其访问范围,以及继承的特点。继承通过extends关键字实现,允许子类复用父类非私有成员,支持单继承和多层继承。权限修饰符(private、默认、protected、public)控制成员的访问范围。Java中所有类都隐式继承Object类,且方法调用遵循就近原则。继承提高了代码复用性并建立了类层次关系。

2402_88461821的博客 1204

Java面向对象三大特征 - 继承篇

继承是类与类之间的一种关系多个子类,继承单独的某个父类,多个子类就可使用单独的这个父类的属性和方法了子类我们也称为派生类,父类也称为基类或者超类。

m0_71485750的博客 2138

Java面向对象:继承

Java面向对象:继承

weixin_58618735的博客 1335

Java面向对象的三大特征之-继承(超详细)

本文详细介绍了Java中的继承特性,重写、子类访问父类私有成员以及如何使用super和final关键字。通过学习,你可以理解如何在子类中使用父类成员以及调用父类的方法和构造器,实现代码的重用和灵活性。

weixin_52176709的博客 850

Java属性继承超详细讲解,从0到1

/ 父类:动物// 共有属性// 共有方法System.out.println(name + "在吃东西");// 父类构造方法用extends// 子类:狗(继承自动物)// 子类特有方法System.out.println(name + "在汪汪叫");// 子类构造方法:必须调用父类构造(通过 super 关键字)// 调用父类的构造方法初始化 name// 子类:猫(继承自动物)// 子类特有方法System.out.println(name + "在喵喵叫");

Stecurry_30的博客 1061

【Java】面向对象之——继承

1.继承的基本概念在讲解继承的基本概念之前,读者 可以先想一想这样一个问题:现在假设 有 一 个 Person类 ,里面有name与age 两个属性,而另外一个Student类,需要有name3 个属性,具体代码如下。Person类从上面的代码中可以发现Person类中己经存在n am e和a g e两个属性,所以不希望在Student类中再重新声明这两个属性,这个时候就需要考虑是不是可以将Person类中的内容继续保留到Student类中,这也就是继承所要解决的问题。

m0_74956284的博客 1183
上一篇: java面向对象——多态(超详细讲解)
下一篇: Java面向对象——this关键字和super关键字的区别
-今非昔比°
博客等级 码龄5年 213粉丝 83原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-今非昔比°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值