java中单继承的含义_Java基础:1、继承的概念和继承的特点

一、基础概念介绍

1、继承是什么?

众所周知,继承是面向对象的三大特征之一。具体将继承理解为两个类之间的关系,被继承的类称为父类,进行父类操作的类叫做子类。子类是对于父类的扩展,通过继承可以使得子类访问父类的非私有成员变量以及成员方法,还可以在子类中对父类中原有的方法进行覆盖重写。

2、继承带来了什么好处?

存在必有意义。使用继承可以增强代码的复用性,提高了代码的可维护性,以及使扩展旧代码的操作风险降得更低。如果你接手了一个陈年老旧的系统,发现其中代码漏洞百出,这时又不轻举妄动,那么选择继承原有代码,对原有方法进行重写或许时一个不错的选择。

3、继承的缺点和不足?

有利必有弊。继承固然方便好用,但同样也给程序带来了其他的问题。由于继承的存在,增强了两个类之间的耦合性,父类的变动可能会引起子类的意外变动。并且继承是具有入侵性的,只要继承了父类,子类就拥有了父类的所有非私有方法。所以在使用继承时还需要多多考虑。

二、继承中的访问特点以及this、super关键字

1、继承中访问变量的特点

关于继承的访问特点,关键就要记住四个字——就近原则。

当子类出现和父类同样的成员变量时,访问的是子类成员变量;

当子类中和父类出现同样的成员变量,切方法中有同名的局部变量时,访问的是局部变量。

当方法内部找不到变量时会找成员变量,如果成员变量也不存在时就会查找父类的成员变量,如果父类中也没有的话则报错。

2、继承中访问构造方法的特点

在子类构造方法的第一行会默认隐式的调用父类的无参构造方法[ super() ],如果父类中没有无参构造方法则会报错。也可以显示的调用父类构造方法,但必须将构造方法写在子类构造方法第一行,否则同样会报错。

当对一个类进行初始化时,虚拟机会检查该类是否有父类,并检查父类是否已经初始化,如果没有初始化则先进行父类的初始化操作;如果父类已经初始化完成, 这时会在为子类分配的内存空间中,分拨一片给父类存储相关信息(如成员变量等),然后将该片内存空间初始化为零值,进行一些必要的设置,再执行父类的方法。再在剩余的空间中对子类相关信息进行初始化,执行和父类相同的步骤。

3、继承中访问成员方法的特点

在子类中调用方法,先在子类中找,子类中没有再到父类中找,父类没有再到父类的父类找,直到最顶层没有则报错。如果子类和父类中有同样方法签名的方法,则调用子类中的方法(方法重写)。

4、super和this关键字

super代表着父类的引用,可以在子类中通过super关键字调用父类中的成员;this代表着子类自己的引用,可以通过this访问子类本身的成员变量。如:在方法中有一个变量,变量名和在类中的一个成员变量变量名相同,那么可以在方法内部通过this关键字调用成员变量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值