首页 > 试题广场 >

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

[不定项选择题]
在java中重写方法应遵循规则的包括()
  • 访问修饰符的限制一定要大于被重写方法的访问修饰符
  • 可以有不同的访问修饰符
  • 参数列表必须完全与被重写的方法相同
  • 必须具有不同的参数列表
方法重写
  • 参数列表必须完全与被重写方法的相同;
  • 返回类型必须完全与被重写方法的返回类型相同;
  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 父类的成员方法只能被它的子类重写。
  • 声明为final的方法不能被重写。
  • 声明为static的方法不能被重写,但是能够被再次声明。
  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 构造方法不能被重写。
  • 如果不能继承一个方法,则不能重写这个方法。
方法重载
  • 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。

发表于 2019-05-29 23:03:46 回复(24)

两同两小一大原则:

  1. 两同:方法名和参数列表相同
  2. 两小:返回值或声明异常比父类小(或相同)   
  3. 一大:访问修饰符比父类的大(或相同)
发表于 2019-10-20 12:58:08 回复(10)
方法重写要注意的事项:
    1.方法重写时, 方法名与形参列表必须一致。
    2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
    3.方法重写时,子类的返回值类型必须要小于或者等于父类的返回值类型。
    4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。
            Exception(大)
            RuntimeException(小)

发表于 2019-07-25 01:03:16 回复(7)
A选项的一定要大于错误,而是子类重写方法的访问权限不能低于父类重写方法的访问权限
发表于 2019-06-08 08:19:08 回复(1)
这种文字游戏有意思吗
发表于 2019-11-15 15:56:39 回复(0)
A、重写规则之一: 重写方法不能比被重写方法限制有更严格的访问级别。 (但是可以更广泛,比如父类方法是包访问权限,子类的重写方法是public访问权限。) B、重写规则之二: 参数列表必须与被重写方法的相同。 重写有个孪生的弟弟叫重载,也就是后面要出场的。如果子类方法的参数与父类对应的方法不同,那么就是你认错人了,那是重载,不是重写。 C、重写规则之三: 返回类型必须与被重写方法的返回类型相同。 D、重写规则之四: 重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。 E、重写规则之***能重写被标识为final的方法。 F、重写规则之六: 如果一个方法不能被继承,则不能重写它。
发表于 2019-05-29 22:24:47 回复(0)
方法的重写需要满足:两同两小一大;
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限
发表于 2019-11-13 18:18:04 回复(0)
重写后方法的访问修饰符大于等于被重写方法的访问修饰符,不一定要大于。🙃
发表于 2019-11-12 08:11:28 回复(1)
方法重写
  • 参数列表必须完全与被重写方法的相同;
  • 返回类型必须完全与被重写方法的返回类型相同;
  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 父类的成员方法只能被它的子类重写。
  • 声明为final的方法不能被重写。
  • 声明为static的方法不能被重写,但是能够被再次声明。
  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 构造方法不能被重写。
  • 如果不能继承一个方法,则不能重写这个方法。
方法重载
  • 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准

发表于 2022-03-06 11:22:16 回复(0)
重写:必须参数一样,访问控制可以不一样;
重载:方法名必须一样,参数必须不一样,返回值可以不一样;
发表于 2022-04-16 23:22:17 回复(0)

方法重写:(override)

  • 参数列表相同
  • 返回类型相同
  • 访问权限不低于被重写方法
  • 父类成员只能被子类重写
  • 有final、static关键字不能被重写
  • 子类和父类同一个包,除了private和final之外可以被重写
  • 子类和父类不再同一个包,public、protected、非final可以被重写
  • 构造方法不能被重写

方法重载(overload)

  • 必须改变参数列表(参数个数或类型或顺序)
  • 可以改变返回类型
  • 可以改变修饰符
  • 可以声明新的或者更广的检查异常
  • 可以在同一类或者同一子类中被重载
发表于 2020-03-26 21:46:27 回复(0)
发表于 2020-03-02 20:54:53 回复(0)

选项A是不正确的,应该是访问修饰符的限制一定要小于或等于被重写方法的访问修饰符。选项B是正确的,选项C也是正确的,选项D是不正确的,因为返回类型必须与被重写的方法相同或是其子类。

发表于 2023-04-22 15:03:49 回复(0)
A,大于等于
发表于 2023-07-27 16:24:41 回复(0)
重载:(同名不同参)
同名:方法名相同
不同参:参数类型不同,顺序不同,个数不同

重写:(两同两小一大)
两同:方法名与参数列表相同
两小:返回值或声明的异常比父类小或相同
一大:访问修饰符比父类大或相同(public>protected>default>private
发表于 2023-07-02 00:12:40 回复(0)
注意A比较的是“限制”而不是“权限”,权限越大限制越小,子类继承的限制应该相等或更小
发表于 2023-05-05 11:35:58 回复(0)
A错在大于,当然也可以等于啊
访问修饰符可以小于等于父类
public class Demo extends People{ @Override  public String a() { return "";  }
} class People{ public Object a(){ return new Object();  }
}
发表于 2023-03-15 16:46:21 回复(0)
链接:https://www.nowcoder.com/questionTerminal/3b074597f13f46f6ac177e31f8d77a2a
来源:牛客网
方法重写
  • 参数列表必须完全与被重写方法的相同;
  • 返回类型必须完全与被重写方法的返回类型相同;
  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 父类的成员方法只能被它的子类重写。
  • 声明为final的方法不能被重写。
  • 声明为static的方法不能被重写,但是能够被再次声明。
  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 构造方法不能被重写。
  • 如果不能继承一个方法,则不能重写这个方法。
方法重载
  • 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。
发表于 2023-02-23 12:14:19 回复(0)
重写:两同,重写方法与被重写方法名参数列表相同;两小,重写方法抛出异常小于等于被重写方法,重写方法返回类型小于等于被重写方法;一大:重写方法访问修饰符大于等于被重写方法。
发表于 2022-12-04 14:06:59 回复(0)
子类是不能更低,而不是一定大于
发表于 2022-10-17 00:33:51 回复(0)