方法重载、方法重写傻傻分不清楚

很多Java初学者可能会被方法重载和方法重写给干懵了,小编觉得可能有两个原因吧,第一:这两个词语在名字上很相近,很容易混淆;第二:学生在学习重载的时候并没有完全消化掉重载的知识,紧接着又要学重写,所以就很懵。

现在小编就来帮大家解决一下这个问题

方法重载

方法重载是以统一的方式处理不同数据类型的一种手段

特点:
  • 在同一个类中
  • 方法名相同,参数列表不同(参数列表不同可以是参数个数、参数类型、参数顺序不同),返回值类型不做要求。

方法重写

在继承中,子类觉得父类的方法不好用,父类的方法内容并不是我们所想要的,那么这个时候就要重写我们父类的方法

class Person{
    public void eat(){
        System.out.println("吃饭...");
    }
}

class Student extends Person{
    @Override
    public void eat() {
        System.out.println("吃火锅...");
    }
}

比如以上代码中,父类eat()吃的是饭,那么子类他不想吃饭,想吃火锅,所以我们要重写一下父类方法。

特点:
  • 在继承中,子类重写父类的方法
  • 除了方法体以外,返回值、方法名、参数列表(包括参数个数、参数类型、参数顺序)都要一样
方法重载方法重写是面向对象编程中的两个重要概念,它们有以下几个区别: 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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值