重载和重写都是多态性的体现,区别是重载是编译时的多态性,重写是运行时的多态性;
重载:只发生在一个类中,通过同名方法名不同参数类型或者参数个数来区分
重写:发生在父类和子类之间,重写要求子类的重写方法必须和父类被重写方法有相同的返回类型,比父类的方法更好访问,不能比父类被重写的方法声明更多的异常,而重载没有返回类型的特殊要求
重载的方法能否根据返回类型进行区分?
不可以,如果用返回类型区分 如果同一个类中public void test1(){}和publiv String test1(){return "";}(编译不通过)假如编译通过,当提出方法时 类.test1 无法识别调用的是哪个方法
文章摘自JAVA面试宝典