JavaSE视频学习阶段性总结 五(方法重写与方法重载的区别)
2013-10-15 22:21
423 查看
继承和多态都是面向对象程序设计的特点。使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法。由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题。方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆, 掌握重写和重载的区别对学会使用多态的方式编写程序、提高程序的可维护性奠定了基础.
方法重载(Overload)是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。
2)Java用参数的类型和个数来决定实际调用的重载方法 。因此,每个重载方法的参数的类型或个数必须是不同。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法;
3)重写方法时,父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,则不能称其为重写而是重载。父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限。访问权限大小关系为:private< protacted <public
输出结果 :
![](http://img.blog.csdn.net/20131015221104484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2hvc3RjaHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
方法重载(Overload):
输出结果 :
![](http://img.blog.csdn.net/20131015221235000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2hvc3RjaHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131015221405968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2hvc3RjaHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
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视频学习阶段性总结 三(类的组成,定义,构造方法;对象的创建,内存模型,参数传递)
- JavaSE视频学习阶段性总结 四(继承)
- JavaSE视频学习阶段性总结 六(多态与接口)
- JavaSE视频学习阶段性总结 二(流程控制,面向对象,封装)
- 继承 方法重写 组合(尚学堂视频学习总结_003)
- 经过学习,自己总结的重写HashCode()和equals()方法,还有"=="与equals()的区别
- JavaSE视频学习阶段性总结 一(java入门,原生数据类型及使用注意,运算符)
- Java 深入学习(10) —— 方法重载与方法重写的区别
- 黑马程序员——Java中的方法重写与方法重载的区别
- JavaSE 学习参考:方法重写
- JavaSE 学习参考:方法重写
- java-方法的重写以及方法重写和方法重载的区别
- [学习总结]1、View的scrollTo 和 scrollBy 方法使用说明和区别
- java-方法的重写以及方法重写和方法重载的区别
- java中方法重写(Override)与方法重载(Overload)的区别
- c#中多态的学习与使用方法以及重写(覆盖)和重载的区别
- 方法重写和方法重载的区别
- JAVA学习总结之方法重写
- 方法重写与方法重载的区别