方法重写

   

重写:需要有继承关系,子类重写父类的方法!
   1.方法名必须相同
   2.参数列表必须相同
   3.修饰符:范围可以扩大,但是不能缩小  public > protected > default > private
   4.抛出的异常  异常的范围:可以被缩小,但不能扩大:ClassNotFoundException --> Exception(大)
重写,子类的方法和父类的方法必须要一致,方法体不同

为什么需要重写:
   父类的功能,子类不一定需要,或者不一定满足
   Alt + Insert(IDEA快捷键)

   

  1. 重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作

  2. 应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法

  3. 重写的规定:

    方法的声明:权限修饰符 返回值类型 方法名(参数列表) throws 异常的类型 {

    // (子父类中的)方法体(必须不同)

    }

    约定俗成:子类中的叫重写的方法,父类中的叫被重写的方法

    ① 子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同

    ②子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符

    >特殊情况:子类不能重写父类中声明为private权限的方法

    ③返回值类型:

    >父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void

    >父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以A类或A类的子类
    >父类被重写的方法的返回值类型是基本数据类型(比如:double),则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是double)
    ④子类重写的方法抛出的异常类型 不大于父类被重写的方法抛出的异常类型

 

子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)。静态方法不能覆盖,是随着类的加载而加载的。

posted @ 2022-11-25 07:48  家兴Java  阅读(33)  评论(0)    收藏  举报