admin 管理员组文章数量: 1086019
2024年3月21日发(作者:matlab产品可以后期安装吗)
方法重载与覆盖的区别
方法重载与覆盖的区别
方法重载与覆盖的区别【一】
方法覆盖(重写)和方法重载具有以下相同点:
·都要求方法同名。
·都可以用于抽象方法和非抽象方法之间。
方法覆盖和方法重载具有以下不同点:
·方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。
· 方法覆盖要求返回类型必须一致,而方法重载对此不做限制。
·方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从
父类中继承而来的方法)。
·方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有
任何限制。
·父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次
方法重载与覆盖的区别【二】
一、重载和覆盖
多态性也是面向对象方法的一个重要特性.多态性是指在在程序中出现的"重名"现象,
即在一个程序中相同的名字可以表示不同的实现.
在JAVA中,多态性主要表现在如下两个方面:
(1)方法重载.通常指在同一个类中,相同的方法名对应着不同的方法实现,但是方法的参
数不同.
(2)成员覆盖.通常指在不同类(父类和子类)中,允许有相同的变量名,但是数据类型不同;
也允许有相同的方法名,但是对应的方法实现不同.
在重载的情况下,同一类中具有相同的名字的方法.如何选择它的方法体呢?不能使用类
名来区分,通常采用不同的方法形参表,区分重载要求形参在类型,个数和顺序的不同,在定义
重载方法时,应在方法的形参的类型,个数和顺序有所不同,以便在选择时能够区别开来.
在覆盖的情况下,同名的方法存在于不同的类中,在调用方法只要指明其方法所归属的
类名就可以了.
版权声明:本文标题:方法重载与覆盖的区别 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710958839a581442.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论