WEB开发网
开发学院软件开发Java Java中overload和override的区别 阅读

Java中overload和override的区别

 2012-11-28 10:49:20 来源:WEB开发网   
核心提示: 1. 方法重载(overload)概念:简单的说:方法重载就是类的同一种功能的多种实现方式,到底采用哪种方式,Java中overload和override的区别,取决于调用者给出的参数,注意事项:(1) 方法名相同(2) 方法的参数类型、个数、顺序不至少有一项不同(3) 方法返

 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);

}

}

Tags:Java overload override

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接