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