Java复习二:继承+super关键字+重写+多态

继承的好处:

1 减少代码冗余

2 便于功能的扩展

3 为多态的使用提供了前提

super关键字

我们可以在子类的方法或构造器中。通过使用"super."调用父类的属性方法构造器,但通常省略"super."但当子类和父类属性或者方法重名的时候,必须显式的使用super.。

super调用构造器

this()和super()调用构造器在同一个构造方法中只能出现一个

在类的多个构造器中,至少有一个类使用了super(),调用父类中的构造器

未显示的使用this和super默认调用空参super()。

没有super.super

重写:

子类重写的方法名和形参列表与父类被重写的方法的方法名和形参列表相同

子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符

​ 1 子类不能重写父类中声明为private权限的方法

返回值类型:

​ 1 父类被重写的党法的返回值类型是void,则子类重写的方法的返回类型只能是void

​ 2 父类被重写的方法的返回类型是A类型,则子类重写的方法的返沪类型可以是A类或者A的子类

​ 3 父类被重写的方法的返回类型是基本数据类型,则子类重写的方法的返回类型必须是相同的返回类型

子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的返回类型

子类和父类中的同名参数要么都声名为非static的,要么都声明为static的(不是重写)

静态方法不能被覆盖,随着类的加载而加载

父类的成员方法只能被它的子类重写。
5、声明为final的方法不能被重写。
6、声明为static的方法不能被重写,但是能够被再次声明。
7、子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
8、子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
9、重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常。
10、构造方法不能被重写。
11、如果不能继承一个方法,则不能重写这个方法。

多态

对象的多态性:父类的引用指向子类的对象

多态的使用:当调用子父类同参数的方法时,实际执行的是子类重写后的方法。(虚拟方法调用)

只能调用声明的类型的方法。

编译看左边,运行看右边

多态使用前提:要有继承,要有方法重写

重载和重写的区别

1 概念

2 具体规则

3 多态性

向下转型

父类强转为子类称为向下转型,使用instanceof判断a是否是类A的实例,如果B是A的父类,那么也为true

子类向上转为多态即为向上转型,即为多态

使用强转时可能会出现ClassCastException的异常,因此要进行instanceof的判断

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

下坠丷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值