您的位置:首页 > 其它

方法重载和方法重写

2018-03-22 13:41 239 查看
1.方法重载
同一个类中的两个或两个以上的方法可以有同一个名字,只要它们的参数生命不同即可。在这种情况下,该方法就被称为重载,这个过程称为方法重载。
public void myprint(int i)
public void myprint(float f)
public void myprint()
当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版本。因此,每个重载方法的参数的类型和(或)数量必须是不同的。返回类型不能用来区分重载的方法。当Java调用一个重载方法时,参数与调用参数匹配的方法被执行。
package page70;
public class Example3_8 {

public static void print(String str) {
System.out.println("String="+str);
}

public static void print(int i) {
System.out.println("int="+i);
}

public static void print(float i) {
System.out.println("float="+i);
}

public static void main(String[] args) {
print("123");
print(123);
print(1.23f);
}

}
输出结果为:String=123
                    int=123
                    float=1.23

2.方法重写
方法重写(或覆盖)是指子类重新定义从父类继承来的方法,从而使子类具有自己的行为,满足自己的需要。
(1)方法重写时要注意以下问题
<1>子类中重写的方法应与父类中的被覆盖的方法有完全相同的方法名称.参数列表.返回值类型,但执行的方法体不同。
<2>重写后的方法不能比被重写的方法有严格的访问限制(访问控制权限按照严格的顺序分别是private.default.protected.public),即子类比父类扩大原则。
<3>可以部分重写父类方法。在元方法的基础上添加新的功能,即在子类的覆盖方法的第一条语句位置添加一条语句:super.原父类方法名()。
<4>不能重写父类的final方法。final方法定义的目的是为了防止被重写。
<5>关于static修饰符,子类和父类必须一致,都有或者都没有。
(2)一般在以下几种情况下使用方法重写
<1>子类中实现与父类相同的功能,但是算法不同。
<2>在名字相同的方法中,子类的操作要比父类多。
<3>在子类中取消从父类中继承的方法。这种情况下,只需重写不需要的父类方法,将方法体设为空。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: