Java方法覆盖的原则以及说明

本文解释了父类与子类的概念,强调了从一般到特殊的继承关系,并详细阐述了方法覆盖的原则,包括方法签名、访问权限、返回值类型及异常声明等方面的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,要明白父类和子类是一种从一般到特殊的关系,简单来说就是,子类是一种父类。比如,苹果类继承自水果类,就说苹果是一种水果。然后,还有一点,一般是先编写多个自定义类,发现多个类之间存在共同的代码,把这些共同的代码抽取出来成为一个新类,这个类就是父类。

明白了以上两点,再来说说方法覆盖。

子类中定义了和父类相同的方法,就说子类覆盖了父类中的该方法。当然这只是个笼统的说法,深究起来其实是错误的。

那么,接下具体说一说判断方法覆盖的原则:

1)父类中private修饰的方法不能被继承,所以也就谈不上覆盖不覆盖了。

2)父类中final修饰的方法,表示最终的,只能被继承,不能被覆盖。

下面几个判断原则可以归结为:一同一大两小

一同:方法签名必须相同。

方法签名 = 方法名称 + 参数列表,参数列表 = 参数个数 + 参数类型 + 参数顺序。

也就是说,方法名称,参数个数,参数类型,参数顺序必须都相同。

一大:子类方法的访问权限大于等于父类方法的访问权限。

两小:子类方法的返回值类型小于等于父类方法的返回值类型,子类方法声明抛出的异常小于等于父类方法声明抛出的异常。

因为继承是从一般到特殊的关系,所以子类的返回值和抛出异常,应该是比父类更具体的,也就是更小。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值