子类重写方法报错????????????

请问下面两种写法报错和不报错的原因?为什么传入参数就不会报错?

如有帮助,请采纳!

 

首先,你这两个方法都不是重写,重写的定义是要遵循"两同两小一大原则"即

  • 两同: 表示重写的参数列表(包括参数类型、参数顺序、参数个数)和方法名需要相同。
  • 两小: 表示方法的返回值类型要小于或等于父类的返回值类型和方法抛出的异常要小于或等于父类方法抛出的异常
  • 一大: 表示重写的方法访问修饰符要大于或等于父类方法的修饰符

 

第一个代码不出错的原因: 是父类和子类的方法毫无关联,它们是单独的方法,所以不会有报错。

 

第二个代码出错的原因: 子类和父类的方法存在冲突,要么你按照重写的规则修改子类的方法,要么将子类的方法名修改成和父类不一样的。

 

子类重写父类方法时方法名,方法返回值,方法入参,皆不可变。

你的返回值从float变为void了,所以不行

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!