一、方法重载(Overload)
方法重载又称静态多态:一个东西在不同情况下呈现的状态。
(1)方法参数个数不同。
class Demo{
int test(int a){
return a >0?a: - a;
}
int test(int b,int c){
return a >0?a: - a;
return b >0?a: - b;
}
}
(2)方法参数个数相同,但类型不同。
class Demo{
int test(int a){
return a >0?a: - a;
}
double test(double a){
return a >0?a: - a;
}
}
(3)方法参数个数和类型都相等,但参数在参数表中顺序不同。
class Demo{
int test(int a,int b){
return b >0?a: - b;
return a >0?a: - a;
}
int test(int c,int d){
return c >0?a: - c;
return d >0?a: - d;
}
}
二、方法重写(Override)
方法重写:一般表示父类与子类同时使用一个完全相同方法,调用时为子类的方法。
class Father {
protected String name;
//这
public void show(){
System.out.println("Father.show()");
}
}
class Son extends Father{
private String sonName;
public Son(String name,String sonName){
this.name=name;
this.somName=sonName;
}
//这
public void show(){
System.out.println("Son.show()");
}
}
public class Main{
public static void main(String[] args){
Son xs =new Son("父名"、"子名");
xs.show();
}
}
当前条件下若需使用父类的方法,就使用“super.函数名”。
......
class Son extends Father{
private String sonName;
public Son(String name,String sonName){
this.name=name;
this.somName=sonName;
}
//这
public void show(){
super.show();
System.out.println("Son.show()");
}
}
注:子类的权限不能比父类更严格。例如,父类权限为public,子类就不能为protecte。