方法重写的规则:
1. 子类继承父类的前提;
2. 方法名相同;
3. 参数列表相同;
4.子类方法的返回值类型与父类方法相同,或者是其子类
5. 访问修饰符不能比父类更严格
6. 不能扩散异常(把父类方法抛出的异常增大)
7. 静态方法不属于对象,因此不能被继承,想调直接用类名.方法名(); 静态方法不能与普通方法重名;
多态:子类对象应用父类类型
1.父类中的方法被子类重写
2.在别的类中,有一个参数类型为父类类型的方法,调用了被重写的父类方法
3.调用时(传递实参时),实参是子类对象,那么就会调用该子类对象重写后的方法
类型转换:
大类型接收小类型,默认转成大类型
小类型接收大类型,默认转成小类型(会丢失精度)
原则上类型要能转才允许转换,一般用instanceof关键字来判断
if(对象名 instanceof 类型){
子类型 新对象名=(子类型)对象名
//可以用新对象名来调用子类特有的方法