java-基础-面向对象-继承

本文详细介绍了Java中的继承概念,包括关键字`extends`的使用,子类与父类的is-a关系,以及单继承的特点。通过实例展示了如何通过继承获取父类的属性和方法,并探讨了继承的优点和缺点。此外,还讲解了`super`关键字的用法以及方法重写(Override)的规则,包括重写的要求和与方法重载的区别。文章强调了子类方法必须符合里氏替换原则,并提供了代码示例展示方法重写的效果。
摘要由CSDN通过智能技术生成

一、继承

        1.继承:关键字(extends)

        它实现了is-a关系,例猫(Cat)、狗(Dog)和动物(Animal)就是一种is-a的关系,因此猫(Cat)、狗(Dog)可以继承(extends)动物(Animal),从而获得动物的非私有(private)属性和方法;

        继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象;

        ▶java只支持单继承;

        ▶Cat可以当做Animal来引用,也就是说可以使用Animal应用Cat对象。父类类型指向子类对象,称:向上转型;

       ✔优点:

                ☺提高代码的复用性(多个相同的成员可以放在同一个类中);

                ☺提高代码的维护性(如果方法的代码需要修改,只修改一处即可)。

        ✘缺点:

                ☹类与类之间建立关系,增强了类的耦合性;

                ☹当父类发生改变时,子类实现也要跟着改变,削弱了子类的独立性。

         创建间Cat对象查看继承或者重写的方法:

         这里可看出,子类Cat继承了父类Animal的所有属性,其中Cat中的eat()方法与父类中eat()方法重名;此时Cat调用的eat()是重写了父类的方法,将父类的eat方法给覆盖了,这样可以让父类的方法得到扩充。

        2.super

å¨è¿éæå¥å¾çæè¿°

        super我们一般指的是父类的对象,和this的功能相似;但是父类super()一般放在代码调用方法的第一行,不然会报错;

两者不能同时出现,因为都要求调用构造函数放置在第一行。

super “.”  和this "." 属性或者方法时没有要求 

 运行结果输出,

         3.方法的重写(Override)

              继承之后,子类用友父类功能(不能访问私有资源);

              在子类中,可以添加子类方法,也可以修改父类的原有功能;

              重写父类方法的要求:

                        两同:方法名相同,参数列表一致。

                        两小:子类返回值类型小于等于父类的返回值类型(继承关系,不是值大小)。

                                   子类抛出的异常小于等于父类方法抛出的异常。

                        一大:子类方法的修饰符权限要大于或者等于父类被重写方法的修饰符权限。

               ④与重载的区别

                        →重载:在一个类中的现象:同一个类中存在方法名相同,参数列表不同的方法;

                        →重载意义:为了外界方便调用,不管出入什么样的参数,都可以匹配到对应的同名方法。

String、println熟知的打印输出用的就是重载!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值