重写和重载的区别
重写和重载的区别:定义不同、范围不同、多态不同、参数不同、修饰不同。
1、定义不同
重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。重写是子类重写父类的方法,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
2、范围不同
重载是在一个类中。重写是子类与父类之间。
3、多态不同
重载是编译时的多态性。重写是运行时的多态性。
4、参数不同
重载的参数个数、参数类型、参数的顺序可以不同。重写父类子方法参数必须相同。
5、修饰不同
重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围。
重载的特点
重载就是方法名称重复,加载参数不同。
在一个Java类中,定义多个同名的方法,如果方法名相同,方法参数不同,包括参数的类型和个数都不同,叫做方法的重载。调用重载方法时,Java编译器通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
方法的重载,既可以发生在普通方法上,也可以发生在构造方法上。方法的重载,既可以发生在同类中,也可以发生在父子类中。Java方法的重载,返回类型、修饰符可以相同,也可不同。要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。