重载 覆盖 ------ 认识

方法重载

方法重载(Overload)是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。

方法重载

方法重载就是方法名称重复,加载参数不同。

在一个Java类中,定义多个同名的方法,如果方法名相同,方法参数不同,包括参数的类型和个数都不同,叫做方法的重载。

调用重载方法时,Java 编译器通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。

方法的重载,既可以发生普通方法上,也可以发生在构造方法上方法的重载,既可以发生在同类中,也可以发生在父子类中。
Java方法的重载:返回类型、修饰符可以相同,也可不同。要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。

public class MethodOverloading{
public void show(String str){
... ...
}
public void show(int i){
... ...
}
public void show(double d){
... ...
}
public void show(int i,double d){
... ...
}
}
public class TestDemo {
public static void main(String[] args) {
//此时将根据参数的类型和个数的不同执行不同的方法体
System.out.println(add(10, 20));
System.out.println(add(30, 40, 50));
System.out.println(add(1.1, 2.1));
}
public static int add(int x, int y) {
return x + y;
}
//此时方法名称相同,参数的个数不同
public static int add(int x, int y, int z) {
return x + y + z;
}
public static double add(double x, double y) {
return x + y;
}
}

方法重写

方法覆盖一般指方法重写

在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖

方法重写概念

1.方法的重写是指两个方法的返回值、方法名、参数的类型和个数相同(子类重写父类的方法)2.方法的重写,不能发生在同类中,只能发生在子类中。
若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,
该关键字引用了当前类的父类。
3.方法重写的权限:子类中的权限大于或等于父类的权限,(修饰符高低:private < 默认修饰符<protected < public4.特殊情况:子类不能重写父类被声明为private权限的方法

方法重写与方法重载区别

1. 方法的重载(Overload)是方法的参数个数或类型不同,方法名相同。

2. 方法重写(override)是要注意权限的问题,子类中的权限不能小于父类的权限,
当父类的权限为private时,子类无法继承。也就无法产生所谓的重写。
(修饰符高低:private < 默认修饰符 < public3.重写也叫覆盖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章