Java重载和重写的区别

重载(Overload) 作用:
方法重载就是让类以统一的方式处理不同类型的一种手段,调用方法时通过传递给他们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。
特点:
重载发生在本类,方法名相同,参数列表不同,与返回值无关,只和方法名,参数的类型相关。
原则:
方法重载时,方法之间需要存在一定的练习,因为这样可以提高程序的可读性,并且我们一般只重载功能相似的方法。
注意事项:
1.重载的方法必须具有不同的参数列表。
2.不能通过访问权限,返回类型,抛出的异常进行重载。
3.方法的异常类型和数目不会对重载造成影响。
4.可以有不同的返回类类型,只要参数列表不同就可以了。
5.可以有不同的访问修饰符。
6.可以抛出不同的异常。
示例代码
`//测试代码
package com.tedu;
【Java重载和重写的区别】public class Test1 {

//参数数目不同 public void out() { System.out.println("参数为空"); } public void out(Integer n) { System.out.println("参数"+n.getClass().getName()); } //参数类型不同 public void out(String string) { System.out.println("参数"+string.getClass().getName()); } public void out(Integer n ,String s) { System.out.println("参数"+n.getClass().getName()+","+s.getClass().getName()); } //参数顺序不同 public void out(String s,Integer n) { System.out.println("参数"+s.getClass().getName()+","+n.getClass().getName()); } public static void main(String[] args) { Test1 test1 = new Test1(); test1.out(); test1.out(1); test1.out("string"); test1.out(1,"string"); test1.out("string",1); }

}
`
执行结果:
Java重载和重写的区别
文章图片

重写(Override) 作用:
重写体现了Java优越性,重写是建立在继承关系上的,它使语言结构更加丰富。在Java的继承中,子类既可以隐藏和访问父类的方法,也可以重写继承来的父类方法。这样方便了子类对父类方法的扩展。
特点:
方法的重写发生在继承类,实现类之中,重写后的方法与原方法有完全相同的返回值类型,方法名,参数个数以及参数类型,但是具体实现不同。
注意事项:
1.方法名必须相同,返回类型必须相同
2.参数列表必须相同
3.访问权限不同比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明成protected。
4.子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
5.构造方法不能被重写
6.继承过程中如果父类当中的方法抛出异常,那么子类中重写父类的该方法时,也要抛出异常,且抛出的异常不能多于父类抛出的异常,例如父类抛出了IOException那么重写这个方法时就不能抛出Exception。
示例代码
Java重载和重写的区别
文章图片

Java重载和重写的区别
文章图片

Java重载和重写的区别
文章图片

总结
Java重载和重写的区别
文章图片

    推荐阅读