重载和重写

构造器的重载:
构造器是可以重载的
构成重载的要求:必须和类名相同,不能有返回值,void也不能写,形参列表要不同
在这里插入图片描述
方法的重载
重载是在同一个类里面的,允许存在一个以上的同名方法,而参数列表不同,返回类型可以相同也可不同。
存在的原因:可以防止一个对象的同一类方法由于参数不同所造成的差异
特点:每个重载的方法或者构造函数的形参列表都必须是独有的,不能有同样的参数列表。

方法重载的规则:

  1. 被重载的方法 形参列表必须要不同(参数类型和类型);
    在这里插入图片描述
  2. 可以改变返回类型;
  3. 可以改变访问修饰符;
    在这里插入图片描述
  4. 可以声明新的或更广的检查异常;
    在这里插入图片描述
  5. 方法能够在同一个类中或者在一个子类中被重载;
  6. 返回值类型不能作为重载函数的区分标准

方法重载的三要素:调用者(对象,类型)相同,方法名相同,形参列表不同

方法的重写:
子类对父类的可以访问的方法进行重新编写,但是不能修改返回值和形参,因为它是以父类为基础,添加自己的属性和方法。
好处:子类可以根据需要,定义自己的行为,即子类可以根据需要来实现父类的方法。
在这里插入图片描述在这里插入图片描述
重写方法的规则:

  1. 参数列表和返回类型必须和被重写方法的一致,不能改变;
  2. 访问权限不能比父类中被重写的方法的访问权限更低;
  3. 父类的成员方法只能被它的子类重写;
  4. 声明为final的方法不能被重写;
  5. 声明为static的方法不能被重写,但是可以再次声明;
  6. 子类和父类在同一个包中,子类可以重写父类所有除了声明为private和final的方法;
  7. 子类和父类不在同一个包中,子类只能够重写父类的声明为public和protected的非final方法
  8. 重写的方法可以抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常;
  9. 构造方法不能被重写;
  10. 如果某个方法不能被继承,也就不能重写这个方法。
  11. 当父类的某个方法对子类来说不适用的时候,子类就可以重写父类的方法。

重载和重写的区别所在:
区别点	方法重载	方法重写参数列表	必须修改	不能修改返回类型	可以修改	不能修改异常	可以修改	可以减少或删除,不能抛出新的或更广泛的异常访问	可以修改	不能做更严格的限制(可以降低限制)
a) 方法重载是一个类中定义了多个方法名相同,而它们的参数数量不同或者数量相同而类型和次序不同;
b) 方法重载是子类存在与父类方法名相同,而参数个数与类型一样,返回值也一样的方法;
c) 方法重载是一个多态性表现,而方法重写是子类和父类的一种多态性表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值