方法重载(overload)
概念简单的说:方法重载就是类的同一种功能的多种实现方式到底采用哪种方式取决于调用者给出的参数
注意事项
() 方法名相同
() 方法的参数类型个数顺序不至少有一项不同
() 方法返回类型可以不同
() 方法的修饰符可以不同
如果只是返回类型不一样不能够构成重载
如果只是控制访问修饰符号不一样也是不能构成重载的
Overloaded的方法是可以改变返回值的类型
方法覆盖(override)
概念简单的说方法覆盖就是子类有一个方法和父类的某个方法的名称返回类型参数一样那么我们就说子类的这个方法覆盖了父类的那个方法
注意事项方法覆盖有很多条件总的讲有两点一定要注意
() 子类的方法的返回类型参数方法名称要和父类方法的返回类型参数方法名称完全一样否则编译出错
() 子类方法不能缩小父类方法的访问权限(反过来是可以的)
例
Overrride实例
class A{
public int getVal(){
return();
}
}
class B extends A{
public int getVal(){
return();
}
}
public class override {
public static void main(String[] args) {
B b = new B();
A a= (A)b;//把 b 强 制转换成A的类型
int x=agetVal();
Systemoutprintln(x);
}
}
Overload实例
package comguonan;
//Demostrate method voerloading
class OverloadDemo {
void test(){
Systemoutprintln("NO parameters");
}
void test(int a){
Systemoutprintln("a:"+a);
}//end of Overload test for one integer parameter
void test(int a int b){
Systemoutprintln("a and b:"+a+" "+b);
}
double test(double a){
Systemoutprintln("double a:"+a);
return a*a;
}
}
class Overload{
public static void main(String[] args) {
OverloadDemo ob = new OverloadDemo();
double result;
obtest();
obtest();
obtest( );
result = obtest();
Systemoutprintln("Result of obtest():"+result);
}
}