Java面向对象--方法重写和多态

方法重写

        规则: 1.子类继承父类的前提

                    2.方法名相同

                    3.参数列表相同

                    4.子类方法的返回值类型要与父类方法相同或者是其子类

                    5.访问修饰符不能比父类更严格

                    6.不能扩散异常(把父类方法抛出的异常增大)

                    7.静态方法不属于对象,因此不能被继承,想调用直接用类名.方法名()

                       静态方法不能与普通方法重名

重载和重写的区别:

重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关

重写涉及的是子类和父类之间的同名方法,要求方法名相同、参数列表相同、返回值类型相同

多态:子类对象引用父类类型

        1.父类中的方法被子类重写(前提)

        2.在别的类中,有一个参数为父类类型的方法,调用了被重写的父类方法

        3.调用时(传递实参时),实参是子类对象,那么就会调用该子类对象重写后的方法

类型转换

大类型接收小类型,默认转换成大类型

小类型接收大类型,强制转换成小类型(会丢失精度)

原则上类型要能转才允许转换,一般用instanceof关键字来判断

if(对象名 instance of 类型){                 //判断一个对象是否属于一个类

        子类型 新对象名=(子类型)对象名;

         //可以用新对象名来调用子类特有的方法

}