请教一道java题

[复制链接]
查看11 | 回复4 | 2018-4-13 11:16:56 | 显示全部楼层 |阅读模式
没有,应该叫Method Overriding,就是方法覆盖。从你给的代码来看,虽然类B继承了类A,但是类A和类B中的方法不是一样的。方法覆盖就是要求有相同的方法名,相同的返回结果,相同的参数列表。虽然类A和类B中的方法getNumber方法名相同,但是方法中的参数列表不一样,类A中的getNumber方法参数有一个,是int类型的a,而类B中的getNumber方法参数有两个,分别是int类型的a和char类型的c。方法的参数不一样,所以构不成方法覆盖,自然也就没有了。你在main主方法中进行的测试,显示结果是12,因为对象b调用了父类中的getNumber方法,而不是自己类中的getNumber方法方法。不过这个例子中有Method Loa...
回复

使用道具 举报

千问 | 2018-4-13 11:16:56 | 显示全部楼层
没有。B中的 public int getNumber(int a, char c){return a+4; } 与父类中public int getNumber(int a){ return a+2; } 两个方法的名相同,但是形参个数不同,根据JAVA语法,这不是覆盖。b.getNumber(10)); 将输出继承其父类的方法执行结果。...
回复

使用道具 举报

千问 | 2018-4-13 11:16:56 | 显示全部楼层
没有override,两个方法的参数个数不同...
回复

使用道具 举报

千问 | 2018-4-13 11:16:56 | 显示全部楼层
有,class B中的getNumber对class A中的getNumber进行了OverRide因为它们同名不同形参列表...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行