您的位置:首页 > 编程语言 > Java开发

Java中overload和override的区别

2013-06-03 16:31 537 查看
转自:http://www.cdtarena.com/javapx/201304/8413.html1.方法重载(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);
}
}
//www.cdtarena.com
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: