JavaSE视频学习阶段性总结 五(方法重写与方法重载的区别)
Posted Felx_chu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE视频学习阶段性总结 五(方法重写与方法重载的区别)相关的知识,希望对你有一定的参考价值。
继承和多态都是面向对象程序设计的特点。使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法。由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题。方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆, 掌握重写和重载的区别对学会使用多态的方式编写程序、提高程序的可维护性奠定了基础.
1.方法重写与方法重载之间的定义:
方法的重写(Override)是指子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型。
方法重载(Overload)是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。
2.方法重写与方法重载之间的区别:
1)重载发生在同一个类内部的两个或多个方法。重写发生在父类与子类之间。
2)Java用参数的类型和个数来决定实际调用的重载方法 。因此,每个重载方法的参数的类型或个数必须是不同。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法;
3)重写方法时,父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,则不能称其为重写而是重载。父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限。访问权限大小关系为:private< protacted <public
3 .方法重写与方法重载之间的代码比较:
方法的重写(Override):
public class overRiding public static void main(String[] args) Human man =new Human(); man.sleep(); Man m =new Man(); m.sleep(); class Human public void sleep() System.out.println("父类Human的sleep方法"); class Man extends Human public void sleep() System.out.println("子类man的sleep方法");
输出结果 :
方法重载(Overload):
输出结果 :public class overLoad public static void main(String[] args) Person p =new Person(); p.name="德玛西亚"; p.age=18; p.print(); p.print("流浪法师", 23); class Person String name; int age; void print() System.out.println("姓名:"+name+";年龄:"+age); void print(String a,int b) System.out.println("姓名:"+a+";年龄:"+b);
4.总结:
杂谈:
最近总感觉时间不够使,我们既要上课,课下又要准备六级,还有软件设计师,再加上现在的javaSE学习。由于学习前期只顾看视频,没有跟上博客上对视知识的整理,现在只好停下视频进度,抽时间一天一篇前期的知识整理。希望这样可以巩固一下前期知识,尽快赶上视频进度。坚持!!!
以上是关于JavaSE视频学习阶段性总结 五(方法重写与方法重载的区别)的主要内容,如果未能解决你的问题,请参考以下文章
JavaSE视频学习阶段性总结 三(类的组成,定义,构造方法;对象的创建,内存模型,参数传递)