首页 > 试题广场 >

在java中重写方法应遵循规则的包括()

[不定项选择题]
在java中重写方法应遵循规则的包括()
  • 访问修饰符的限制一定要大于被重写方法的访问修饰符
  • 可以有不同的访问修饰符
  • 参数列表必须完全与被重写的方法相同
  • 必须具有不同的参数列表
方法的重写(override)两同两小一大原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
编辑于 2016-11-02 13:49:37 回复(55)
 重写的规定:子类中叫重写的方法、父类中叫被重写的方法
  1.子类重写的方法的方法名和形参列表和父类中被重写的方法的方法名和形参列表相同
  2.子类重写的方法的权限修饰符不小于父类中被重写的方法的权限修饰符
      >特殊情况,子类中不能重写父类中private的方法
  3.返回值类型:
      >父类被重写的方法的返回值类型是void,子类也必须是void
      >父类被重写的方法的返回值类型是A类,则子类中重写的方法的返回值类型可以是A类或A的子类
      >父类被重写的方法的返回值类型是基本数据类型,则子类中重写的方法的返回值类型必须是相同的基本数据类型
         子类重写的方法抛出的异常类型不大于父类中被重写的方法抛出的异常类型
      子类和父类中同名同参数的方法,要么都声明为非static的,要么都声明为static的
发表于 2021-10-07 21:54:50 回复(0)
方法的重写: 发生在子类和父类之间的一种运行时多态(父类更通用,子类更具体)
重写的原则: [两同、两小、一大]
  • 两同
  1. 方法名相同
  2. 参数签名相同(参数个数、参数顺序和参数类型)
  • 两小
  1. 方法的返回值要小于或等于父类中被重写方法中的返回值
  2. 方法抛出的异常要小于或等于父类中被重写方法中的异常
  • 一大
  1. 方法的访问修饰符要大于或等于父类中被重写方法中的访问修饰符     
发表于 2021-07-19 18:46:01 回复(0)
总结一下方法重写
方法名和参数类型相同
子类的返回值类型小于等于父类的返回值类型
子类抛出异常小于等于父类方法抛出的异常
子类访问权限大于父类的访问权限
发表于 2018-10-27 19:57:26 回复(0)
凤雏出山相助~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一个方法{}前由四部分构成 访问权限 返回值类型 方法名 参数列表 重写: 只看前两项 访问权限要大于等于父类中被重写的方法 例如父类中protected Integer add(){} 子类中protected/ public Integer/ int 重载:只看后两项 方法名相同,参数列表不同,参数列表包括参数类型和参数个数,重要的是参数顺序,如果类型和个数都相同,但是顺序颠倒了,这也是重载方法。
编辑于 2018-10-22 10:56:12 回复(0)
重写要满足的条件: 1.重写方法与被重写方法同名。 2.重写方法与被重写方法参数列表也必须相同。 3.重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。 4.重写方法不能缩小被重写方法的访问权限。 所以A不一定大于,可以相同。
发表于 2018-04-23 16:09:55 回复(1)
方法的重写(override)两同两小一大原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
详细的说明为:
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。 即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常IOException,但是在重写这个方法的时候不能抛出Exception异常,因为Exception是IOException的父类,只能抛出IOException的子类异常。

方法的重写规则

  • 1)参数列表必须完全与被重写方法的相同;
  • 2)返回类型必须完全与被重写方法的返回类型相同;(备注:这条信息是标准的重写方法的规则,但是在java 1.5 版本之前返回类型必须一样,1.5(包含) 版本之后java放宽了限制,返回类型必须小于或者等于父类方法的返回类型 )。才有了
  • 子类返回类型小于等于父类方法返回类型。在java里面这个怎么样都是正确的,请小伙伴谨记。
  • 3)访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 4)父类的成员方法只能被它的子类重写。
  • 5)声明为final的方法不能被重写。
  • 6)声明为static的方法不能被重写,但是能够被再次声明。
  • 7)子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 8)子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 9)重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 10)构造方法不能被重写。
  • 11)如果不能继承一个方法,则不能重写这个方法。
发表于 2017-01-09 09:11:03 回复(0)
除了访问权限大宇等于,返回类型和抛出异常要小于等于父类
发表于 2016-09-01 00:57:09 回复(0)
方法重写(Override)指的是子类重写父类的方法,方法重写必须具有完全相同的参数列表,如果参数列表不相同,那就不是方法重写,而是方法重载了(Overload)。方法重写必须要求重写后方法的修饰符的访问权限大于等于被重写方法的修饰符访问权限。所以正确答案为B、C
发表于 2016-05-14 20:05:54 回复(0)
重写发生在子类继承父类时,对父类中的方法重写以覆盖父类中的方法,在重写时要注意两同两小一大原则。另外,当父类的方法访问权限设置为Private时,子类无法对此方法进行重写。
发表于 2016-05-12 21:45:35 回复(0)
方法重写 就是子类对于父类的继承,首先返回类型一样,内容可以不一样,有自己独立的方法,.也就是覆盖.
发表于 2016-04-11 11:10:23 回复(0)
总结来说为:
方法名相同,参数类型相同
子类返回类型等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。

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

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常IOException,但是在重写这个方法的时候不能抛出Exception异常,因为Exception是IOException的父类,只能抛出IOException的子类异常。

方法的重写规则

  • 1)参数列表必须完全与被重写方法的相同;
  • 2)返回类型必须完全与被重写方法的返回类型相同;(备注:这条信息是标准的重写方法的规则,但是在java 1.5 版本之前返回类型必须一样,1.5(包含)j 版本之后ava放宽了限制,返回类型必须小于或者等于父类方法的返回类型 )。才有了
  • 子类返回类型小于等于父类方法返回类型。在java里面这个怎么样都是正确的,请小伙伴谨记。
  • 3)访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 4)父类的成员方法只能被它的子类重写。
  • 5)声明为final的方法不能被重写。
  • 6)声明为static的方法不能被重写,但是能够被再次声明。
  • 7)子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 8)子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 9)重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 10)构造方法不能被重写。
  • 11)如果不能继承一个方法,则不能重写这个方法。
来自:http://www.runoob.com/java/java-override-overload.html
编辑于 2017-07-08 11:57:00 回复(11)
A:修饰符>=被重写的方法修饰符就行
B:可以有不同的访问修饰符。访问权限大于等于就行

发表于 2016-04-09 16:00:43 回复(6)
A选项错在还可以相等
发表于 2017-07-18 13:44:26 回复(2)
访问修饰符的限制一定要大于被重写方法的访问修饰符(大于等于都可以)

发表于 2016-06-03 14:58:47 回复(0)
重写(override)原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
发表于 2016-09-20 13:25:38 回复(0)
A错在,应该是“大于等于”
发表于 2019-05-29 14:35:17 回复(0)
A选项在玩文字游戏,重写访问修饰符大于等于被重写方法的访问修饰符
重写的参数列表必须完全和被重写方法相同。重载的参数列表必须和被重载的方法不同,包括类型、参数个数、顺序
发表于 2021-10-27 09:38:25 回复(0)
重写与重载之间的区别
方法重载:
1、同一个类中
2、方法名相同,参数列表不同(参数顺序、个数、类型)
3、方法返回值、访问修饰符任意
4、与方法的参数名无关
方法重写:
1、有继承关系的子类中
2、方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同
3、访问修饰符,访问范围需要大于等于父类的访问范围
4、与方法的参数名无关
发表于 2021-03-06 09:18:24 回复(0)
限制权限越大,访问越小
发表于 2019-11-19 03:24:44 回复(0)