面试趣闻之重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

重载和重写都是多态性的体现,区别是重载是编译时的多态性,重写是运行时的多态性;

重载:只发生在一个类中,通过同名方法名不同参数类型或者参数个数来区分

重写:发生在父类和子类之间,重写要求子类的重写方法必须和父类被重写方法有相同的返回类型,比父类的方法更好访问,不能比父类被重写的方法声明更多的异常,而重载没有返回类型的特殊要求

重载的方法能否根据返回类型进行区分?

不可以,如果用返回类型区分 如果同一个类中public void test1(){}和publiv String test1(){return "";}(编译不通过)假如编译通过,当提出方法时 类.test1 无法识别调用的是哪个方法

 

文章摘自JAVA面试宝典

posted @ 2017-05-08 16:22  恋月缘  阅读(1717)  评论(0)    收藏  举报