今天我们学习了继承和多态。继承和多态是java面向对象的三大特性之二,重难点知识很多。
一、继承
1、定义:
子类对象继承了父类对象的所有内容,但不都可见,静态资源属于类,不属于被继承的范畴,关键字为extnds。
2、继承中的构造方法:
子类构造方法默认来自来自于父类无参
如果父类有有参但没有无参,则子类无法直接写出无参构造,需要用super()指定父类的构造方法
3、super关键字的作用:
子类可以通过super关键字指定父类对象内容
super.属性 一般用于区分子类、父类都有的属性
super.方法()一般用于区分子类、父类有相同方法(重写的同时调用父类方法)
super(.....)指定父类的构造方法
二、方法重写
1、规则
子类继承父类的前提,
方法名相同,
参数列表相同,
子类方法的返回值类型要与父类方法相同或者是其子类
访问修饰符不能比父类更严格
不能扩散异常(把父类方法抛出的异常增大)
静态方法不属于对象,不能被继承,想调用直接用 类名.方法名() 去调用,静态方法不能与普通方法重名
2、应用
重写equals方法
三、多态
1、定义
同一个引用类型,使用不同的实例而执行不同操作
2、特点
子类对象引用父类类型
父类中的方法被子类重写
在别的类中,有一个参数为父类类型的方法,调用了被重写的父类方法
调用时(传递实参时),实参是子类对象,那么就会调用该子类对象重写后的方法
3、应用
使用父类作为方法的形参,是Java中实现和使用多态的主要方式
使用父类作为方法的返回值,也是Java中实现和使用多态的主要方式