方法的重写和重载

方法的重写和重载

方法的重写(覆盖)

要求:方法的名称一致
方法的重写(覆盖)一定发生在父子类之间

  • 执行规则:new谁运行谁的方法,和声明的类型无关,由具体创建对象的类型决定
  • 方法的覆盖定义要求方法名称一致
  • 子类中方法范围要求大于等于父类中的方法范围,不允许private 返回类型一致,子类方法可以小于等于父类 类型,例如父类Number,子类Integer 参数类型一致
  • 方法的参数一致(个数、类型、顺序),和参数名称无关
  • 返回数据类型一致【面试】(因为如果返回类型不一致,则无法进行语法检查,例如父类返回Double,而子类返 回Integer,调用处语法检查是按照Double进行检查还是按Integer检查?允许父类中返回的是父类型,而子类 中返回子类型,例如父类中返回的是Number类型,而子类中返回的是Integer)

注意!!!!

静态方法覆盖和调用::用谁声明则调用谁的静态方法

方法的重载

方法的名称相同,参数不同,和返回值类型无关。可以在一个类内或者父子类之间
调用规则:类型佳匹配原则
方法名称相同并且参数不同。参数不同有3种情况:参数个数不同、参数类型不同、参数顺序不同 和参数名称无关

1.和返回类型无关
2.和范围无关
3.和方法的抛出异常无关

猜你喜欢

转载自blog.csdn.net/qq_45874107/article/details/112736643