java多态中的重载于覆盖有什么不同

如题所述

好吧!重载必须在同一个类中,比如两个成员方法是重载关系,要求他们对应位置上的参数类型不同或是要求两个方法参数个数不同(两条件只要满足一个就行),重载与方法的返回类型无关,
然后覆盖是指在子类中出现了与父类相同的成员方法,要求这两个方法的参数和返回类型都相同,关于修饰权限,是子类的权限永远大于等于父类,比如父类是public,子类只能是public,但是如果父类是private,子类可以是private,protected,public,
最后要注意的是父类(对于子类)可访问的东东等于是子类的(相当于同一个类中),如果在覆盖时,(子类父类中有同名方法)如果子类的同名方法的参数与父类不同,覆盖就变成重载了..
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-09
方法覆盖:如果从父类继承来的方法的功能不适应子类的要求,则可以声明自己的方法,在声明的时候,使用与父类相同的方法名和参数,这种情况称为方法覆盖(或重写)
class A{ int i;
public void changgeValue(){i=i-50;}
. ..................................
}
class B extends A{ public void changgeValue(){i=i+100;}

}
方法重载:方法重载是指在一个类中可以有名字相同的多个方法,但这些方法必须是不同的或者是参数个数不同,或者参数类型不同,返回值可以相同可以不同。例如,
class A{ double area(float r){return Math.Pi*r*r;}
double area(float r,float w){return l*w;}
double area(float r,float w,float h){return l+w+h;}
....................................
}
第2个回答  2010-10-09
覆盖是在继承里面的术语,比如父类中有一个类叫eat(),如果子类中也出现了这个eat(int n),那么这个就叫覆盖
重载只是在同一个类型中(class),有多种方法

重载与覆盖有什么区别?
1、覆盖是子类和父类之间的关系,是垂直关系;2重载是同一个类中方法之间的累加,是水平关系。三、方法的数量不同 1、覆盖只能由一个方法,或只能由一对方法产生关系;2、重载是多个方法之间的关系。四、参数不同 1、覆盖要求参数列表相同。2、重载要求参数列表不同。

java多态中的重载于覆盖有什么不同
好吧!重载必须在同一个类中,比如两个成员方法是重载关系,要求他们对应位置上的参数类型不同或是要求两个方法参数个数不同(两条件只要满足一个就行),重载与方法的返回类型无关,然后覆盖是指在子类中出现了与父类相同的成员方法,要求这两个方法的参数和返回类型都相同,关于修饰权限,是子类的权限...

java里的重写,重载,覆盖的区别?
重写即覆盖,重载与覆盖的区别是:1)方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致;2)方法覆盖要求返回类型必须一致,而方法重载对此不作要求 3)方法覆盖只能用于子类覆盖父类的方法,而方法重载用于同一个类中所有的方法(包括从父类中继承过来的方法)4)方法覆盖对方法的访问权限...

Java语言中,说明覆盖、种载和多态之间的区别?
覆盖和重载的意思是一样的子类继承了父类后有不同的实现方式所以就重载了父类的方法这样也就覆盖了父类的方法多态:如类A继承了类B 并实现了接口C和接口D这样A是B类型、C类型、D类型这样多态

浅谈Overload和Override的区别
1、参数类型、个数、顺序至少有一个不相同。2、不能重载只有返回值不同的方法名。3、存在于父类和子类、同类中。方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。如果在子类...

重载和覆写有什么区别?
比如:Derived继承了Base,Base里面有void A(int a)那么如果你Derived里面觉得A写得不好或不适合这个类,你想重新再写一遍A里的代码,那么就写override void A(int a)这样,原来的那个函数就被你新写的这个覆盖掉了。Overload 是重载,就是说函数名相同,函数特征不同,系统会根据你提供的参数来调...

重载覆盖和隐藏的区别
重载:是一个类内部实现相同机理的操作,但是操作的对象不同,主要体现在:方法在同一个类中,重载的方法名称相同,参数不同(参数的类型不同,参数的个数不同),virtual关键字可有可无;覆盖:就是面向对象中的多态,是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。主...

覆盖与重载的关系是
override是重写(覆盖)一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则:1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>...

Overload和Override的区别?
Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表。两者不同主要体现在:1,目的 overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其...

浅谈Overload和Override的区别
Overload是重载的意思,Override是覆盖的意思,也就是重写。重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的...

相似回答
大家正在搜