软构随笔笔记(2)

自己复习看的 部分内容不严谨

重写和重载(继承和接口)

接口

请添加图片描述

  • 接口是只有抽象方法的一个类,说白了就是十分纯粹的抽象类
  • 他只能通过别的类implement它才能发挥效用
  • 具体类 > 抽象类 > 接口 (类的容量越来越少)

重写和重载

  • 重写一定不能改变传参,重载必须改变传参。
  • 重写的返回值不变或返回子类型,重载返回值无限制。
  • 重写可以减少或消除抛出异常,但一定不能抛出新异常,而重载无限制。
  • 重写的访问可以不变或放宽,重载无限制。
  • 重写的调用在运行时由堆顶实例的对象类型决定,重载的调用由重载后的引用类型,在编译过程中决定,运行时调用还是一个虚拟方法,但是编译器总是知道调用的方法签名,所以运行时匹配的参数已经被确定了,只是没有在方法实际所在的类中。
    重载意义:方便客户调用,对应给出的不同参数列表进行不同的方法调用
    要求:重载会检查签名一致,并且可见度要么不变要么增加(就是public,private那些)。

有关于重写的实例
马类继承了动物类并且重写其中的吃方法,而马类在重写吃方法后又在类中重载了一个吃方。
在调用方法时,首先看对象类型,若为动物,那么就吃父类的吃,要是马,有参数则吃重载的吃,没参数就吃重写的吃,动物类的吃要是吃带参数的吃会报错。
这里要注意最后一个,仍然在父类引用类型中寻找合适的参数对应方法,找不到,只能说在父类中找到合适的,然后重写匹配到实际方法,如果引用重载,要从实际类型进入再调用。

请添加图片描述
-所有子类型相同的操作,父类型不需要重写。
-子类型中重写的要么是独有方法,要么是和其他子类型中实现有出入

请添加图片描述
-继承后可以使用super来调用父类中纯粹的未重写方法。
-调用父类的构造方法时,必须是构造器的第一条语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值