首页 > 其他分享 >08、继承

08、继承

时间:2024-08-13 20:56:04浏览次数:8  
标签:变量 构造方法 继承 子类 08 父类 方法 成员

01、继承的概述

        一、引言

        假如我们能够把这些类中的相同的内容给提取出来定义在某一个类中然后,让其他的类和这个定义的类产生一个关系,有了这个关系他们就具备了这个定义类中的功能。该有多好呢?针对这种情况,java就提供了一种技术:继承。

        二、继承的格式和叫法

        格式

                class 类A extends 类B{

                        //表示类A继承了类B

                }

        注意:

                子类可以直接访问父类中的非私有的属性和行为。

02、继承的好处及特点

        一、好处

                A:提高了代码的复用性

                B:让类与类之间产生了一个关系,是多态的前提

        二、特点

                A:Java只支持单继承,不支持多继承,因为如果可以多继承,就会出现调用不明确的问题

                B:Java支持多重继承

03、什么时候定义继承关系

        由于继承体现了一种关系:is a的关系。XXX is YYY的一种

        以后,我们在定义类(A,B)的时候

                如果他们之间有:A is a B的一种,或者B is a A那么,他们之间就存在继承关系,前者A是子类,后者B是子类。

        注意:不要为了获取部分功能,而去使用继承。

04、子父类间成员变量的使用

        一、类的组成

                成员变量

                构造方法

                成员方法

        二、研究子父类的成员变量的关系?通过子类访问一个成员变量的时候:

                A:首先在局部范围找,如果有就使用

                B:继续在成员位置找,如果有就使用。

                C:最后在父类中找,如果有就使用。

                D:如果没有就报错。

        三、我现在要在子类中,输出局部范围的值,输出成员范围的值,输出父类成员变量的值,怎么办?

                A:局部范围的值-------直接输出变量名即可

                B:成员范围-------输出this.变量名即可

                C:父类的成员变量-------输出super.变量名即可

05、this和super的区别和应用

        一、概述

                this:代表本类对象的引用

                super:和this的用法很相似,代表父类的内存空间的表示(可以理解为父类对象的引用)。

        二、this和super的使用

                1.成员变量

                        this.变量--当前类的变量

                        super.变量--父类的变量

                2.构造方法

                        this(参数)--本类的其他构造方法

                        super(参数)--父类的构造方法

                3.成员变量

                        this.方法名()--本类的方法

                        super.方法名()--父类的方法

06、方法的重写

        一、概念

                子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写

        二、区别(背)

                方法重写:在父子类中,出现方法相同的情况,返回值,方法名,参数都要求一模一样

                方法重载:同一个类中,方法名相同,跟返回值无关

07、子父类间成员方法的注意事项

        A:父类中的私有方法不能被覆盖

        B:子类的访问权限一定要大于父类的访问权限

        C:静态方法只能被静态方法重写,这个其实不能算对象的关系

        D:覆盖的应用

                当子类需要父类的功能,而主体子类有自己特有的内容时,可以复写父类的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

08、子父类间构造方法的执行顺序

        一、继承中的构造关系

                子类中构造方法默认都去访问了父类的无参构造方法,在子类中的构造方法都有一行默认语句:super();

        二、为什么要这样做?

                子类会自动具备父类中非私有的数据,那么,这个数据的初始化由父类完成,所以会先去调用父类的构造方法对数据进行初始化。

        注意,如果父类中没有无参构造方法,那么怎么办?

                A:可以使用super(参数)去访问父类的有参构造方法

                B:可以使用this(参数)去访问本类中的其他构造方法,不推荐使用

09、代码块的执行顺序

        静态代码块-->构造代码块-->构造方法

        注意

                静态代码块只执行一次。(class字节码文件只加载一次的情况下)

10、子类如何使用父类的私有成员变量

        如果成员变量被私有了,那么,在子类中怎么使用呢 ?

                A:子类通过父类的set方法可以给父类的成员变量赋值

                B:通过子类调用父类的带参构造方法

11、final关键字的概述和使用

        一、引言

                很多时候,有些内容是不能被子类重写的。而我们又知道,只要方法声明(public void show())相同子类就可以重写父类方法。这样就让父类的方法不安全了针对这种情况,我们如果能够做一个标记,告诉别人,注意了,这个方法是不可以被重写了。那么,这个标记是什么恩?final

        二、final关键字

                1.概念:最终的意思,可以修饰类,成员方法,成员变量

                2.他修饰的成员方法是不可以被子类重写的

                3.常量:他修饰成员变量时,其实是一个常量

                4.他修饰的类不能被继承

标签:变量,构造方法,继承,子类,08,父类,方法,成员
From: https://blog.csdn.net/weixin_55345689/article/details/141172894

相关文章

  • .NET周刊【8月第1期 2024-08-04】
    国内文章EFCore性能优化技巧https://www.cnblogs.com/baibaomen-org/p/18338447这篇文章介绍了在代码层面上优化EFCore实例池和拆分查询的方法。首先,文章建议使用DbContext实例池来重复利用实例,避免资源浪费,并提供相关使用示例。其次,文章讨论了笛尔卡乘积对复杂查询性能的影......
  • windows核心编程 第三章,跨越进程边界共享内核对象,对象句柄的继承性,改变句柄的标志,命名
    windows核心编程3.3跨越进程边界共享内核对象3.3.1对象句柄的继承性3.3.2改变句柄的标志3.3.3命名对象3.3.4终端服务器的名字空间3.3.5复制对象句柄文章目录windows核心编程3.3跨越进程边界共享内核对象3.3.1对象句柄的继承性3.3.2改变句柄的标志3.3.3命名......
  • 详解C++的四大特性(封装,继承,多态,抽象)
    C++的四大特性是面向对象编程(OOP)的核心概念,分别是封装、继承、多态和抽象。这些特性共同构成了C++作为面向对象编程语言的基础。1.封装(Encapsulation)概念:封装是将数据和操作数据的方法绑定在一起,限制对数据的直接访问。通过将数据隐藏在类内部,只暴露必要的接口(如public成......
  • 20240813:组合计数选做
    P3214[HNOI2011]卡农题意:\(m\)个集合,\(n\)种元素,求集合间互不相同且每种元素出现偶数次的方案数。题目等价于从\(1\sim2^n-1\)里选出\(m\)个不同的数,使他们异或和为\(0\)。不妨对每个数标号,由于互不相同,最后除以\(m!\)即可。设\(f_i\)表示前\(i\)个数异或......
  • 24-08-08 JavaSE Map集合
    24-08-08javaSEMap集合Map接口的特点Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value(双列元素)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3.Map中的key不允许重复,原因和HashSet一样,前面分析过源码.Map......
  • 【2024-08-11】连岳摘抄
    23:59幸福其实来自对人生的投入,而不是与之脱离。                                                 ——乔纳森·海特你是典型的体制从业者,有幸运的一面,也有不幸的一......
  • C语言 08 运算符
    基本运算符基本运算符包含常用的一些操作,常用的有:加法运算符:+减法运算符:-乘法运算符:*除法运算符:/取模运算符:%赋值运算符:=先来看加法运算,这个就和数学中的是一样的了:#include<stdio.h>intmain(){inta=10,b=5;printf("%d",a+b);}15当然也......
  • 【闲话】08.12.24
    0812闲话头图:今日推歌:《苦若吞沙feat.诗岸》Zeno来吧bababalala旋转着眩晕着拥抱着过去的那一切全都bababalala只剩下空气还哭泣着来吧bababalala奔跑着跌倒了泥泞的用力的把一切全都bababalala只剩下我还在等什么太符合心境了有点不知......
  • 每日AI必读资讯 2024-08-12
    原文链接:https://blog.csdn.net/m0_46163918/article/details/14111374601黑匣子被打开了!能玩的Transformer可视化解释工具:TransformerExplainer佐治亚理工学院和IBM研究院开发一款基于web的开源交互式可视化工具「TransformerExplainer」,帮助非专业人士了解Transfor......
  • 值类型和引用类型、装箱和拆箱、静态类和普通类、方法的重载、继承和多态
    目录值类型和引用类型的区别?值类型(ValueTypes)定义:特点:示例:引用类型(ReferenceTypes)定义:特点:示例:举例说明:总结:装箱和拆箱装箱(Boxing)特点:示例:拆箱(Unboxing)特点:示例:示例代码:装箱和拆箱的影响最佳实践:静态类和普通类的区别?静态类(StaticClass)普通......