×

方法重载只能发生在一个类的内部

Java中方法的重载和覆盖怎么区分?在JAVA语言中方法重载和方法覆盖到底如何去理解它.哪个高手能够举个列子并且做一定的说明谢谢哈

admin admin 发表于2022-06-11 09:04:52 浏览109 评论0

抢沙发发表评论

Java中方法的重载和覆盖怎么区分


重载(overload):发生在一个类的内部,而且是针对方法而不是域而言。若方法的签名相同,但参数的个数或者参数的类型不同,则构成了重载。但返回类型不在考虑范围之内,也就是说,如果仅仅是返回类型不同,则构不成重载。 覆盖(override):发生在父类和子类之间,而且是针对实例方法(即非静态方法)而不是域而言。构成覆盖要满足以下条件:1、父类中的static方法不可以被覆盖;2、父类中的final方法不可以被覆盖;3、方法的签名、参数个数以及参数类型都要相同; 对于返回类型要说明两点: 1)如果返回类型是引用类型,则覆盖方法的返回类型可以声明为父类方法声明的返回类型的子类型; 2)如果返回类型是基本类型,则覆盖方法的返回类型必须和父类方法的返回类型相同;来源:(

在JAVA语言中方法重载和方法覆盖到底如何去理解它.哪个高手能够举个列子并且做一定的说明谢谢哈


重载:在一个类的内部,如果有一个方法名为test,你重新写一个方法,这个方法的名字也叫test,但是两个方法的参数不同.

也就是说,重载指的是在一个类的内部有两个或多个名字相同但参数不同的方法.

覆盖:如果一个父类有一个方法名为test,在他的子类里也写一个方法名字也是test,两个方法返回类型和参数都相同,但是方法体不同.

也就是说,覆盖指的是不同的类中(父类方法,子类覆盖)有两个或多个返回类型,方法名,参数都相同,但是方法体不同的方法

java方法重载是指一个类中的,方法重写是不同类中的,对吗


java重载是指同一类中,同一方法名,有不同的返回值。
你说的参与是真正调用的时候具体的实现方法吗?如果是,就看你实现的对象是子类还是父类,子类就调用子类。反之。