java中方法的覆盖与方法重载分析详解

本文详细解析了Java中的方法覆盖与方法重载的区别,包括语法要求、应用场景及注意事项。方法覆盖需在子类中定义与父类相同的方法名、参数列表和返回类型,而方法重载则是在同一类中定义多个同名但参数列表不同的方法。
摘要由CSDN通过智能技术生成

标题:

java中方法覆盖与方法重载

方法重载(overload)

方法重载中要求满足一下几点:

  • 覆盖与被覆盖的两个方法名必须相同

  • 形参列表不同
    1.形参数据类型不同
    2.形参个数不同
    3.形参顺序不同
    (以上满足一点即为形参列表不同)

  • 返回值类型访问修饰符异常 没关系

方法覆盖(override)
		方法覆盖相对方法重载语法更为严格
		并且是需要在父子类的基本框架上实现的
		即在子类中定义和父类形同的方法

方法覆盖需要满足一下几点:

  • 子类的方法名形参列表返回值类型都要与父类相同
  • 子类的访问修饰符需要与父类相同或者比父类更

方法覆盖的应用场景:

  • 父类中提供的方法,不足以满足子类的 功能需求时,
    子类可以根据自身功能重写此方法。

方法覆盖的注意事项

  • 如果子类定义了方法名、形参列表和父类相同;
    但是返回值和父类 不同,不能构成方法的覆盖,编译报错。

  • 如果子类定义方法名相同、但是形参列表不同的方法,
    编译通过,运行也通过,但此语法是方法的重载。
    (如果是抽象方法便必须进行方法的覆盖)

访问修饰符的分析:

private(私有)default(默认)protected(受保护的)public(公开的)
访问范围本类可以访问本类,同包(子类,非子类)本类,同包(子类非子类),不同包子类同包,不同包
子类可否继承不能同包子类可以子类一定可以子类一定可以
以上修饰符从私有到公开即为从严到宽
子类继承时必须遵守访问修饰符从严到宽的原则
最后注意overload(方法重载)与override(方法覆盖)的英文写法 防止造成混淆
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值