java方法重载和方法重写

目录

重写(Override)与重载(Overload)

 重写(Override)

        重写注意点

        重写示例

重载(overload)

       说明

       重载规则

     重载实例

重载和重写的区别

总结


重写(Override)与重载(Overload)

        重写(Override)

                重写是子类对父类的允许访问的方式的实现过程进行重新编写,

                返回值和形参都不能改变,即外壳不变,核心重写。

                重写可以根据子类的需要,来定义属于自己的行为

                也就是说子类能够根据自己的需求来实现父类的方法

        重写注意点

                1.重写方法不能抛出父类不包含的异常,或者比父类声明的异常更加宽广

                2.子类覆盖父类,必须保证子类权限(修饰符)要大于或等于父类权限

                        才可以覆盖,且父类不能为private修饰

                3.参数列表与被重写方法的参数列表完全一样

                4.返回类型与被重载方法的返回类型可以不相同

                        但必须是父类的派生类(java5返回值相同,java7+可以不同)

                5.子类重写了方法之后,子类调用方法会调用子类自己的方法,不会调用父类的方法

        重写示例

//父类
class Over {
	protected void a () {
		try {
			System.out.println("Over类当中的a方法");
		}catch(RuntimeException E) {
			E.printStackTrace();
		}
	}
}
//子类
class ride extends Over{
	//修饰符比父类小,会编译异常
    //void a () {
    //	System.out.println("Ride类当中的a方法");
    //}
//  抛出比父类不包含的异常
//	public void a () {
//		throw new Exception();
//	}

	public void a () {
		throw new RuntimeException();
	}
	 
}

        重载(overload)

                说明

                        重载(overload)是在一个类当中,方法名称相同,而参数不同

                                返回类型可以相同也可以不同

                        每个重载的方法(构造函数)都必须有一个第一无二的参数类型列表

                        最常用的地方就是构造器的重载

                重载规则

                        被重载的方法必须改变参数列表(参数个数、类型、顺序)

                        被重载的方法可以改变访问修饰符

                        方能能够在同一个类中或者在一个子类中被重载

                        无法以返回值类型和修饰符作为重载函数区分的标准

                重载实例

public void a (){
    
}
//个数不同
public void a (int i){
    
}
//类型不同
public void a (String i){
    
}
//个数不同
public void a (String b ,int i){
    
}
//顺序不同
public void a (int a ,String b){
    
}

重载和重写的区别

区别点

重载方法

重写方法

参数列表

必须修改

一定不能修改

返回值类型

可以修改

不能修改

异常

可以修改

可以减少或删除,一定不能抛出新的或更广的异常

访问

可是修改

子类不能比父类的修饰符大

总结

        方法的重写和重载都是java多态性的不同表现,重写是父类的与子类之间的一种表现

        重载可以理解成多态的具体表现形式

                1.方法重载是一个类中定了多个方法名相同,而他们的参数的数量不同而类型

                        和顺序不同,则称为方法的重载

                2.方法重载是在子类继承了父类并声明了相同的方法时,而且参数的个数与类型一样

                        返回值也一样,称为重写

                3.方法重载是一个类多态性的表现,而方法重载是子类与父类的一种多态性表现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值