子类是否可以重载父类的方法?重载可以发生在子类中吗?

一、争议

这是网上经常被提起的两个问题,有的说不可以,理由重载是同一类中,方法名相同,参数列表不同的一组方法的定义。
但是认为可以的理由是子类可以继承父类所有的公有方法(构造器方法除外),然后在子类中定义与继承方法同名不同参数列表的方法,这也叫重载。

二、个人理解

感觉第一个问题本身的问法就存在问题。没有这一说。 重载可以发生在子类中吗?我同意 “重载是同一类中,方法名相同,参数列表不同的一组方法的定义”这种看法。 但我们单看子类,他继承了父类(有重载方法)的公开方法,此时子类中已经包含了父类的同名不同参的方法,子类也包含了重载方法,此时在子类中添加一个同名不同参的方法还是重载,因为满足重载的特征。

不同观点,欢迎指正

猜你喜欢

转载自blog.csdn.net/gao_zhennan/article/details/80554122
今日推荐