重载和重写的区别

重载与重写的区别

方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或 参数类型不能完全相同。
方法冲写是存在父类和子类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数列表和兼容的返回类型。

注:

	重写和重载没有半毛钱的关系,只是名字长得像而已

重载(Overload):

1)方法重载是让类以统一的方式来处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数列表
2)重载的时候,方法名要一样,参数列表不一样,返回值类型可以相同也可以不相同。

重写(Override):

1)子类可以继承父类的方法和属性,但有时候子类不想要父类的那些土方法,想做些改变,变得潮流,这就需要重写。
2)方法重写又叫方法覆盖

重载的规则:

1.必须具有不同的参数列表
2.方法名必须相同
3.可以有不同的访问修饰符,返回值类型
4.可以抛出不同的异常

重写的规则

1,参数列表、方法名必须与被重写的方法相同
2,访问修饰符必须相同或更大    private<default<protected<public
3,返回值类型必须相同或兼容(是被重写方法的返回值类型的子类)
4,抛出的异常相同或更小

面试题:重载和重写的区别

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个
类中,同名的方法具有不同的参数列表(参数类型不同、参数个数不同或者二者皆不同)则视为重载;重写发生在父类和子类中,重
写要求子类重写方法和父类被重写方法有相同的参数列表,有兼容的返回类型,访问修饰符更大,抛出的异常更小。重载对返回值类
型没有特殊的要求,不能根据返回值类型进行区分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值