Java当中的继承

1 篇文章 0 订阅

继承的概述:

继承:让类与类之间产生关系(子父类关系),子类可以直接使用父类中的非私有成员

继承的格式:

public class 类名 extends 父类名
例:public class Zi extends Fu()

结论:

父类当中私有的成员变量,如果提供setXXX/getXXX方法,
子类是可以通过set/get方法访问成员变量的

继承的好处:

提高了代码的复用性,提高了代码的维护性,**让类与类之间产生了关系是多态的前提**

继承的弊端:

继承是侵入性的。
降低了代码的灵活性(继承父类导致子类必须拥有父类非私有的属性和方法,
让子类自由的世界多了一些约束)。
增强了代码的耦合性:代码与代码之间存在关联都可以称之为耦合

继承的应用场景:

当类与类之间,存在相同(共性)的内容,并且产生了is a的关系,
就可以考虑使用继承来优化代码。

继承的特点:

Java只支持单继承,不支持多继承,但支持多层继承。
单继承:一个子类只能有一个父类。
不支持多继承:子类不能同时继承多个父类。
支持多承继承:子类A继承父类B,父类B继承爷爷类C

继承中访问成员变量需注意:

如果子类中,出现了重名的成员变量,则会通过就近原则,会优先使用子类的。
如果一定要使用父类的,可以通过super()关键字来进行区分。

继承成员变量的访问特点:`

super()关键字的用法和this关键字用法相似
this.代表本类对象的引用。
super():代表父类存储空间的标记(可以理解为父类对象的引用)。
this.成员变量:访问本类的成员变量
this.成员方法(...)访问本类的成员方法。
this.(...)访问本类的构造方法
super.成员变量:访问父类的成员变量
super.成员方法(...):访问父类的成员方法
super(...):访问父类的构造方法。

继承中成员方法的共同特点:

子类成员范围中查找,如果找不到才会去父类的成员范围中查找
如果子类方法出现重名的问题,想要调用父类的方法加上(super.方法)即可通过
子类对象访问父类方法。

方法重写概述:

在继承体系当中,子类出现了和父类一摸一样的方法声明(方法名、参数、返回值类型均相同)

方法重写的引用场景:

当子类需要父类的功能,而功能主体子类有自己的特定内容,这个时候便可以重写
父类当中的方法,这样既沿袭了父类的功能,又定义了子类特有的内容

注意:

方法重写;在继承体系中,子类出现了和父类一摸一样的方法声明(方法名、参数、返回值类型)
方法重载:在同一个类中,方法名相同,参数不同,与返回值无关,构成方法的重载

方法重写的注意事项:

1、父类中私有的方法不能被重写
2、父类静态方法,子类必须通过静态方法进行重写,父类非静态方法,子类也必须
通过非静态方法进行重写
3、静态方法不能够被重写,如果子类中,也存在一个方法声明一摸一样的方法,可以
理解为,子类将父类中同名的方法隐藏了起来,并非方法的重写
4、子类重写父类的方法时,访问权限必须大于或等于父类

权限修饰符:

private(同类中,set/get) < 默认(同类中,子类无关包) 
< protected(同类、同包中的无关包,不同包中的子类) 
< public(任意位置均可访问) 

继承中构造方法的特点:

子类中所有的构造方法默认都会访问父类中无参的构造方法
因为:子类在初始化的时候,有可能会使用到父类当中的数据,如果父类没有初始化
子类将无法使用父类的数据。子类在初始化之前,一定要先完成父类的初始化

初始化:

构造方法的第一条默认的语句都是super()

注意:

如果我们编写的类,没有手动指定父类,系统也会自动继承(Object类)
Java继承体系中最顶层的父类
如果父类没有空参的构造方法,子类可以在super()在括号中添加参数,则会自动去
寻找父类当中的有参构造方法,子类可以编写带参构造方法与父类一致的参数,
在丢给super()就灵活了
   子类通过this去调用本类的其他的构造方法,本类的其他构造方法再通过super()
去手动调用父类的带参构造方法(及其不推荐)
this(...)与super(...)都必须放在构造方法的第一条可执行代码,
所以两者不能够共存。

萌新小白原创,如有不足之处还望各位前辈多多指教,将不胜感激🙏🙏🙏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

微醺三旬

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

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

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

打赏作者

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

抵扣说明:

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

余额充值