当前位置: 移动技术网 > IT编程>开发语言>Java > Java overload和override的区别分析

Java overload和override的区别分析

2019年07月22日  | 移动技术网IT编程  | 我要评论
方法的重写(overriding)和重载(overloading)是java多态性的不同表现。重写(overriding)是父类与子类之间多态性的一种表现,而重载(over
方法的重写(overriding)和重载(overloading)是java多态性的不同表现。重写(overriding)是父类与子类之间多态性的一种表现,而重载(overloading)是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.

1.方法重载(overload)
概念:简单的说:方法重载就是类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。 
注意事项:
(1)方法名相同
(2)方法的参数类型、个数、顺序不至少有一项不同
(3)方法返回类型可以不同
(4)方法的修饰符可以不同
如果只是返回类型不一样,不能够构成重载
如果只是控制访问修饰符号不一样,也是不能构成重载的
overloaded的方法是可以改变返回值的类型。
2.方法覆盖(override)
概念:简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
注意事项:方法覆盖有很多条件,总的讲有两点一定要注意:
(1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。
(2) 子类方法不能缩小父类方法的访问权限(反过来是可以的)
例:
overrride实例
复制代码 代码如下:

class a{
public int getval(){
return(5);
}
}
class b extends a{
public int getval(){
return(10);
}
}
public class override {
public static void main(string[] args) {
b b = new b();
a a= (a)b;//把 b 强 制转换成a的类型
int x=a.getval();
system.out.println(x);
}
}
overload实例
package com.guonan;
//demostrate method voerloading.
class overloaddemo {
void test(){
system.out.println("no parameters");
}
void test(int a){
system.out.println("a:"+a);
}//end of overload test for one integer parameter.
void test(int a, int b){
system.out.println("a and b:"+a+" "+b);
}
double test(double a){
system.out.println("double a:"+a);
return a*a;
}
}
class overload{
public static void main(string[] args) {
overloaddemo ob = new overloaddemo();
double result;
ob.test();
ob.test(10);
ob.test(10, 20);
result = ob.test(123.25);
system.out.println("result of ob.test(123.25):"+result);
}
}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网