黑马程序员--学习笔记--Java中的重载和重写

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

        在我们学习的过程中,通常我们容易被重载和重写这两个概念感到混乱,这里简单的记录一下。

重载

        如果同一个类中包含了两个或两个以上方法名相同,但是形参列表不同的方法,这就是方法重载。所以判断方法重载要求是同一个类中方法名相同,参数列表不同。至于方法的返回值类型、修饰符等,与方法重载没有关系。

        适用情况:

        就是当方法的功能相同,但是参与运算的未知内容不同。那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

重载代码实例:

public class Overload {

	//下面定义了几个test方法,但方法的形参列表不同
	//但是系统可以区分,这就叫方法重载
	public void test(){
		System.out.println("无参数的test方法");
	}
	//下面两个方法,虽然参数名相同但是顺序不同,这也是列表不同
	public void test(String name,int age){
		System.out.println("有参数的方法,"+name+":"+age);
	}
	
	public void test(int age,String name){
		
	}
	//下面这个重载方法里面包含了长度可变的参数,另外如果参数列表中
	//还有其他的参数,那么可变长度的参数放在末尾
	public void test(int age,String... names){
		
	}
}

重写

        重写是出现在子类与父类的继承中的。在Java中,子类可以继承父类中的方法,而不需要重新编写相同的方法。但是当需要在子类中需要对某个父类的方法内容进行重新定义,从而更符合子类的需求时,这个方法重定义的过程就叫方法重写(方法覆盖)。

        在子类和父类中,如果某一个方法具有相同的方法名、返回值类型以及参数列表,那么子类的方法将覆盖父类的方法。但是如果需要在子类中引用父类原有的方法可以使用super关键字实现。另外子类函数的修饰符的权限要不小于父类的函数。

小代码实例:

public class Override {

	public static void main(String[] args) {
        Animal a = new Animal();
        Dog d = new Dog();
        a.run();
        d.run();
        d.bark();
	}
   
}
//定义Animal类
class Animal{
	public void run(){
		System.out.println("动物可以跑!");
	}
}

class Dog extends Animal{
	//重写run方法
	public void run(){
		super.run();
		System.out.println("狗会跑和走!");
	}
	//定义一个叫的方法
	public void bark(){
		//因为父类中没有bark方法,所以这里不能
		//用super调用父类方法
		System.out.println("狗还会吠呢");
	}
}

总结

        所以说:重载与重写就分别是Java在一个类里和在子父类里的多态性的体现。前者增强了类中方法的可复用性,即一个类里有多个方法名相同但是参数列表不同,返回值类型不一样的方法,简化了代码的编写。后者我觉得就是细化了父类中该方法的功能,使得该方法更能达到继承者的使用要求,只是进行了适当的改造,但是功能上还是与被重写的父类方法是相同的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值