生活知识
生活常识
科技数码
教育知识
汽车知识
游戏知识
办公方法
装修知识
旅游知识
搜索

生活常识分类 日常知识 生活知识 餐饮知识 宠物知识 运动知识 更多知识 中文舞曲 英文舞曲 车载音乐 车载视频

重写和重载都是多态的体现吗(重写和重载)

日期:2022-10-02 08:17:33人气:15

导读:大家好,小帝来为大家解答以上问题。重写和重载都是多态的体现吗,重写和重载这个很多人还不知道,现在让我们一起来看看吧!1、重写能够在需...

大家好,小帝来为大家解答以上问题。重写和重载都是多态的体现吗,重写和重载这个很多人还不知道,现在让我们一起来看看吧!

1、重写能够在需要新的子类特有行为时重新在子类中定义方法。

2、重写方法的规则:

3、● 参数列表必须完全与被重写的方法相同。

4、● 返回类型必须完全与被重写的方法返回类型相同。

5、● 访问级别的限制性(private,public等)一定不能比被重写方法的强。

6、● 重写方法一定不能抛出新的检查异常或比被重载方法声明的检查异常更广的检查异常。

7、● 重写方法能够抛出更少或更有限的异常

8、● 不能重写被标识为final的方法

9、● 如果不能继承一个方法,则不能重写它。

10、重载的方法和构造函数(构造函数只能被重载)使用具有不同参数列表的相同方法名称(或构造函数)。

11、重载方法的规则:

12、● 被重载的方法必须改变参数列表。

13、● 被重载的方法可以改变参数类型。

14、● 被重载的方法可以改变访问修饰符。

15、● 被重载的方法可以声明新的或更广的检查异常。

16、● 方法可以在一个类中或一个子类中重载。

17、最后一个例子:

18、public class Person{

19、public void who(){

20、System.out.println("I am a person");

21、}

22、}

23、public class JJ extends Person{

24、public void who(){

25、System.out.println("I am JJ");

26、}

27、public void who(String s){

28、System.out.println("I am " + s);

29、}

30、}

31、---------------------------------------------------------------

32、 方法调用代码 | 结果

33、---------------------------------------------------------------

34、Person p = new Person(); | I am a person

35、p.who(); |

36、---------------------------------------------------------------

37、JJ j = new JJ(); | I am JJ

38、j.who(); |

39、---------------------------------------------------------------

40、Person p = new JJ(); | I am JJ

41、p.who(); |

42、---------------------------------------------------------------

43、JJ j = new JJ(); | I am Pandajj

44、j.who("PandaJJ"); | 调用重载方法

45、---------------------------------------------------------------

46、Person p = new Person(); | 编译错误

47、p.who("JJ"); |

48、---------------------------------------------------------------

49、Person p = new JJ(); | 编译错误

50、p.who("JJ"); |

51、---------------------------------------------------------------

52、注:最后两个调用方法代码会产生编译错误,是因为编译器在编译时候,只看到引用类型,

53、 发现Person没有带参数的who()方法,编译器并不能意识到实际对象在运行的时候可能

54、 是它的子类JJ的对象。

以上就是【重写和重载都是多态的体现吗,重写和重载】相关内容。

声明: 本站所有文章来自互联网搜索结果, 如果侵犯到你的权益 请提供版权证明来信告知,我们会在3个工作日之内删除 本站为非赢利性网站 不接受任何赞助和广告

Copyright 2005-2022 baike.pingguodj.com 酷帝达百科 客服邮箱:s2s2s2-s@outlook.com