多态性是面向对象程序设计的重要部分。在Java语言中,通常使用方法的重载和重写实现类的多态性。重写之所以有多态性,是因为父类的方法在子类中被重写,子类和父类的方法名称相同,但完成的功能却不一样,所以说,重写也具有多态性。
方法的重载是指在一个类中出现多个方法名相同,但参数个数或参数类型不同的方法,则称为方法的重载。Java语言在执行具有重载的关系的方法时,将根据调用参数的个数和类型区分具体执行的是哪个方法。
例如:
package classandobject;
public class Calculte {
final float PI = 3.1415f;
public float getArea(float r) {
float area = PI*r*r;
return area;
}
public float getArea(float l,float w ){ //重载getArea();
float area = l*w;
return area;
}
public void draw(int num) {
System.out.println("画"+num+"个任意形状的圆");
}
public void draw(String shape) { //重载draw()
System.out.println("画一个"+shape);
}
public static void main(String[] args) {
Calculte calculte = new Calculte();
float l =20;
float w =30;
float areaRectangle=calculte.getArea(l,w);
System.out.println("求长为"+l+"宽为"+w+"的矩形面积是:"+areaRectangle);
float r =7;
float areaCirc=calculte.getArea(r);
System.out.println("求半径为"+r+"的圆的面积是:"+areaCirc);
int num=7;
calculte.draw(num);
calculte.draw("三角形");
}
}
运行结果如下:
求长为20.0宽为30.0的矩形面积是:600.0
求半径为7.0的圆的面积是:153.9335
画7个任意形状的圆
画一个三角形