多态:一般是指一个程序中同名的不同方法共存的情况。在面向对象的程序中,多态可以表现在很多方面,例如可以通过子类对父类方法的覆盖实现多态,也可以通过一个类中方法的重载实现多态,还可以将子类的对象作为父类的对象实现多态。这里着重分析一下方法覆盖和方法重载。
方法重载:是在一个类中定义同名方法的情况。重载中一般是采用不同的形式参数列表,包括形式参数的个数、类型和顺序的不同,来区分重载的方法。一般这些方法同名的原因是他们最终功能和目的都相同。
public void println(){};
public void println(boolean x){};
public void println(char x){};
public void println(int x){};
public void println(String x){};
public void println(float x){};
这些方法虽然重名,但参数的类型不同,实际的动作也不同,具体调用那个方法是有实际参数值的类型决定的。
方法覆盖:也叫方法重写。是子类对继承父类的方法的重新定义。方法覆盖要求与父类方法中的参数列表相同。
public class a{
public static void main(String[] args){}
public void sum(String s){};
class b extends a(){
public void sum(String s){}
}
}
方法覆盖式子类和父类之间,而方法重载是一个类自身的。