黑马程序员_方法重载与方法覆盖的异同

本文详细解析了方法重载与方法覆盖的概念、相同点与不同点,并通过实例代码进行了具体说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- android培训java培训、期待与您交流! ----------

方法重载与方法覆盖的相同点:

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);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值