类的多态性显示为不同子类的对象对同一个消息会有不同的行为。
示例:
public class PolymorphicTest {
@Test
public void test() {
Shape circle=new Circle();
Shape square=new Square();
show(circle);
show(square);
}
public void show(Shape s){
s.draw();
}
}
class Shape
{
public void draw() {
}
}
class Circle extends Shape{
public void draw(){
System.out.println("draw a circle");
}
}
class Square extends Shape{
public void draw(){
System.out.println("draw a square");
}
}
输出:
draw a circle
draw a square