码迷,mamicode.com
首页 > 其他好文 > 详细

重载与重写

时间:2017-10-15 00:31:38      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:形参   cal   code   htm   mil   ora   ase   image   父类   

重载与重写

1、 重载

重载:方法名相同而形式参数不同。(参数类型列表不同或参数顺序不同)
特点:
(1) 传入的数据类型小于方法中声明的参数类型,实际类型数据会被提升。(char类型略有不同,若无法找到接受char类型的参数则直接把char类型提升为int类型)。
(2) 若传入的实际参数大于重载方法中的参数类型,则通过类型转换来执行窄化转换。
(3) **不能通过返回值来区分重载方法。**即

public void example(){
} 
//重载与返回值无关,所以即使返回值不同一个为void无返回值,一个为int返回值,也是重载了方法public void example()
public int example(int m,float f){
}
//不是重载,与返回值无关,参数列表及类型相同会报错。
public int example(){
}

在重载中,运用的是静态多分派,即根据静态类型确定对象,因此不能根据new的类型确定调用的方法

重写

方法重写应遵循“二同二小一大”原则:
“二同”:即方法名相同,形参列表相同;
“一小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等;
“另一小”:子类返回类型小于等于父类方法返回类型;
“一大”:子类方法的访问修饰符应比父类方法更大或相等。

在重写中,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法;

重载与重写

标签:形参   cal   code   htm   mil   ora   ase   image   父类   

原文地址:http://www.cnblogs.com/0427mybirthday/p/7668922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!