方法重载和方法的重写

方法重载和方法重写的区别

方法重载定义: 方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。也就是说,同一个方法,传递不同的参数,可以得到不同的结果.

方法重写定义: 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量。

下面是表格显示他们的区别:
方法名返回值参数访问修饰符的权限发生位置
方法重载(Overloding)无关无关不一致无关当前类
方法重写(Overriding)一致一致一致权限不能严于父类继承的子类
代码如下:

class Test
{
public static void main(String[] args)
{
HomeDog hd = new HomeDog(“阿黄”);
hd.desc();
}
}

//基类
class Dog
{
protected String name;
public Dog(String name){
this.name = name;
}
protected void desc(){
System.out.println(“I’m a dog”);
}
}

//子类
class HomeDog extends Dog
{
public HomeDog(){}
public HomeDog(String name){
super(name);
}
//重写父类的方法
public void desc(){
System.out.println(“这是一只狗,它的名字是”+this.name);
}
}

输出结果为:这是一只狗,它的名字是阿黄

可见,调用的是子类中的desc()方法,而不是父类的desc,这就是方法的重写.重载就更简单了,无参的HomeDog()和有参的HomeDog(String name)就是一个重载的方法.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
方法重载方法重写是面向对象编程中的两个重要概念,它们有以下几个区别: 1. 参数列表不同:方法重载是指在同一个类中定义多个方法,它们具有相同的名称但参数列表不同。而方法重写是指子类重新定义了父类中已有的方法,具有相同的名称和参数列表。 2. 返回类型不同:方法重载与返回类型无关,只要参数列表不同即可。而方法重写要求子类的返回类型必须与父类的返回类型相同或兼容。 3. 访问修饰符不同:方法重载可以具有不同的访问修饰符,包括public、protected、default和private。而方法重写要求子类的访问修饰符必须大于或等于父类的访问修饰符。 4. 关键字不同:方法重载没有关键字限制,只要参数列表不同即可。而方法重写使用关键字"override"来标识子类对父类方法重写。 5. 功能不同:方法重载是为了提供多个功能相似但参数不同的方法,以便满足不同的需求。而方法重写是为了在子类中重新定义父类的方法,以实现多态性和特定的功能需求。 综上所述,方法重载方法重写在参数列表、返回类型、访问修饰符、关键字和功能等方面存在明显的区别。 #### 引用[.reference_title] - *1* *2* *3* [重载与重写的区别](https://blog.csdn.net/lucylily11/article/details/121777776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值