Java继承

Java继承一:继承的概述1.继承的定义继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。–注:父类又称为超类或者基类。子类又称为派生类!2.继承的格式通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:class父类{…}class子类extends父类{…}二、关于继承之后的成员变量1.当成员变量不重名如果子类父类中出现不重名的成员变量,这时的访问是没有影

大家好,又见面了,我是你们的朋友全栈君。

一:继承的概述
1.继承的定义
继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
–注:父类又称为超类或者基类。子类又称为派生类!

2.继承的格式
通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:
class 父类 {


}
class 子类 extends 父类 {


}
二、关于继承之后的成员变量
1.当成员变量不重名
如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。
–注:Java只支持单继承,不支持多继承,也就是说一个类只能有一个父类,不可以有多个父类

2.成员变量重名
如果子类父类中出现重名的成员变量,这时的访问是有影响的。
如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。
当子父类中出现了同名的成员变量时或者在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字, 使用格式 super.父类成员变量名

3.当成员变量时非私有时:子类中可以直接访问。
4.当成员变量时私有:子类是不能直接访问的。

那如何访问父类私有变量呢?
在父类中提供公共的getXxx方法和setXxx方法就可以访问父类的私有成员变量了。

三:关于继承之后的成员方法
1.成员方法不重名
如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。
对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

2.成员方法重名 【方法重写】
成员方法重名大体也可以分两种情况:
1、方法名相同返回值类型、参数列表却不相同(优先在子类查找,没找到就去父类)
2、方法名、返回值类型、参数列表都相同,就是重写(Override)
—注:重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。
–注:隐藏和覆盖是不同的,隐藏是针对于成员变量和静态方法的,而覆盖是针对普通方法的。

最后重写必须注意这几点:
1、方法重写时, 方法名与形参列表必须一致。
2、子类方法覆盖父类方法时,必须要保证子类权限 >= 父类权限。
3、方法重写时,子类的返回值类型必须要 <= 父类的返回值类型。
4、方法重写时,子类抛出的异常类型要 <= 父类抛出的异常类型。

四:关于继承之后的构造方法
构造方法的名字是与类名一致的,所以子类是无法继承父类构造方法的。 构造方法的作用是初始化成员变量。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认会在第一句代码中添加super(),表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。
super() 不写也默认存在,而且只能是在第一句代码中。

–重载:函数的方法参数个数或者类型不一致,称为方法的重载
从含义上说,只要求参数的个数或者参数的类型不一致就说两个函数式重载函数,而至于返回值是否一样,没关系。同时,重载可以发生在同一个类中也可以发生在继承关系中。
–重写(覆写):对一个方法的重写必须发生在具有继承关系的两个类中,即子类对父类方法的重写。
它要求两个方法的参数个数和类型以及返回值类型都必须一致,这样才称为方法重写。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156464.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 所有帖子的 分类 总结

    所有帖子的 分类 总结一,数据库的数据库从入门到精通01:https://blog.csdn.net/u012932876/article/details/116212832数据库从入门到精通02:https://blog.csdn.net/u012932876/article/details/117715317数据库从入门到精通03:https://blog.csdn.net/u012932876/article/details/117359992Oracle数据库的操作:https://blog.csdn.net/u

  • 中国著名的D版和激活成功教程软件下载网站(转)「建议收藏」

    中国著名的D版和激活成功教程软件下载网站(转)「建议收藏」中国著名的D版和激活成功教程软件下载网站 (1)无忧软件网 – 不可多得的激活成功教程软件下载基地,附有无忧书库,无忧字体,代码基地,无忧教学,**园地,完全游戏http://www.51soft.com/ ;(2)精品软件秀 – 软件下载网页,可惜更新太慢!分类清楚,更新及时,也值得一看。http://www.ohsoft.com/ ;(3)163软件园 – 163软件园是国内著名的软件网站,网站定位是提供“提

  • 上海居住证怎么转户口(上海居住证转户口需要多久)

    2019独角兽企业重金招聘Python工程师标准>>>…

  • C# winform美化窗体

    C# winform美化窗体记录一下winform美化工具CSkin一个.Net的UI库。参考链接:https://blog.csdn.net/yyl7727/article/details/78904125?spm=1001.2014.3001.5502

  • 平均数,中位数,众数 三者的联系与区别是_中数一定是数吗

    平均数,中位数,众数 三者的联系与区别是_中数一定是数吗原文链接:http://www.360doc.com/content/18/0717/09/57858800_771067787.shtml个人理解,说简单点:一组数据中如果有特别大的数或特别小的数时,一般用中位数一组数据比较多(20个以上),范围比较集中,一般用众数其余情况一般还是平均数比较精确一、联系与区别:  1、平均数是通过计算得到的,因此它会因每一个数据的变化而变…

  • vs2012 express 密钥「建议收藏」

    vs2012 express 密钥「建议收藏」VisualStudioExpress2012forWindowsDesktopKEY:MMVJ9-FKY74-W449Y-RB79G-8GJGJMicrosoftVisualStudioExpress2012forWebKEY:VX3VY-8GCVT-KJQCY-RQ99X-MCF2RVisualStudioExpress

    2022年10月25日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号