1、继承
- 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
- extends的意思是“扩展”。子类是父类的扩展。
- Java中类只有单继承,没有多继承。
- 继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等。
- 继承关系的两个类,一个为子类,一个为父类,子类继承父类,使用关键字extends来表示
- 子类和父类之间,从意义上讲应该具有“is a”的关系
- 子类继承父类,就会拥有父类的全部方法和属性
2、object类
Java中所有类间接或直接继承object类
3、super
super注意点
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
VS this
- 代表的对象不同
- this :本身调用者这个对象
- super:代表父类对象的应用
- 前提:this没继承也可使用,super只能在继承条件才可以使用
- 构造方法:this()本类的构造;super()父类的构造
4、方法重写
重写:需要有继承关系,子类重写父类的方法
- 1、方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但不能缩小;public>Proceted>Default>private
- 抛出异常:范围可以被缩小,但不能扩大; ClassNotFoundException>Exception
重写,子类的方法和父类必须一致,方法体不同
为甚么需要重写:父类的功能,子类不一定需要或者不一定满足。
5、多态
- 即同一方法可以根据发送对象的不同而采用多种不同的行为方式 。
- 一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多
- 多态存在的条件:有继承关系;子类重写父类方法;父类引用指向子类对象
注意:
- 多态是方法的多态,属性没有多态性
- 1、static 方法,属于类,它不属于实例
- 2、final 常量
- 3、private 方法
6、instanceof和类型转换
instanceof (类型转换)引用类型,判断一个对象是什么类型
类型转换
- 父类引用指向子类对象
- 把子类转换为父类,向上转型
- 把父类转换为子类,向下转型;强制转换
- 方便方法的调用,减少重复代码
((Student) object).play();//父类转为子类调用子类方法
Student student=new Student();
Person person=student;//子类转换为父类,可能丢失一些方法