A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法重载与方法覆盖的相同点:
1,方法名相同。
2,可以用于抽象方法与非抽象方法之间。
方法重载与方法覆盖的不同点:
1,方法覆盖要求参数类型、参数个数、参数顺序必须一致,而方法重载要求参数类型、参数个数、参数顺序至少有一项不同。
2,方法覆盖要求返回类型必须一致,而方法重载可以不同。
3,方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法。
4,方法的覆盖对方法的访问权限不能小于父类的访问权限,对抛出的异常不能超出父类的异常范围,而方法重载不做任何限制。
5,父类的一个方法只能被一个子类覆盖一次,而一个方法在所在类中可以被重载多次,包括从父类继承的方法。

下面对方法重载举例说明:
class Based{
public void get(String s,int age){
System.out.println(s+":"+age);
}
}
class Dem extends Based {

public int add(double a,int c){//add()方法可以重载多次
return (int)a+c;
}
public double add(int c,double a){//参数顺序不同,放回类型可以不同
return a+c;
}

long add(long a,long b){//参数类型不同,访问权限不受限制
return a+b;
}
public int add(int a,int b,int c){//参数个数不同
return a + b + c;
}

public void get(int age,String s){//可以重载从父类中继承来的方法
System.out.println(age+":"+s);
}
}

方法覆盖举例说明:
class Base1{
public void show(String name,int age){
System.out.println("base...method.........."+name+":"+age);
}
}
class Sub extends Base1{
public void show(String name,int age){//方法名相同,参数类型、参数个数、参数顺序相同
System.out.println("sub.....method..."+name+":"+age);
}

}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马