1.方法重载(overloading method)
方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法, 这就是多态性。下面是一个方法重载的例子:
package overloadangoverrid;
import static org.junit.Assert.*;
import org.junit.Test;
public class overloading {
public static void main(String[] args){
overloading ot=new overloading();
int a1=ot.add();
double a2=ot.add(11.3, 20);
int a3=ot.add(1, 2);
System.out.println("a1="+a1+"\n"+"a2="+a2+"\n"+"a3="+a3);
}
@Test
/*重载是对同名函数的多次加载*/
public int add() {
int a=100;
a=a+20;
return a;
}
@Test
/*重载是对同名函数的多次加载*/
public int add(int a,int b) {
int c=100;
c=c+a+b;
return c;
}
@Test
/*重载是对同名函数的多次加载*/
public double add(double a,int b) {
double c=100;
c=c+a+b;
return c;
}
}
2.方法重写(overiding method)
在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
父类:OverExtend.java
package OverExtend;
public class OverExtend {
/*父类的方法*/
public String overrid(){
return "这是一个重写方法";
}
public void overr(){};
}
子类:overriding.java
package overloadangoverrid;
import OverExtend.OverExtend;
public class overriding extends OverExtend{
public static void main(String[] args){
overriding or=new overriding();
System.out.print(or.overrid());
or.overr();
}
@Override
public String overrid() {
//super.overrid()是调用父类的overrid()方法
return super.overrid();
}
@Override
public void overr() {
System.out.println("这是一个重写方法");
}
}