class Shape { public void draw() { System.out.println("画图形"); } } class Rect extends Shape { @Override public void draw() { System.out.println("🔶"); } } class Cycle extends Shape { @Override public void draw() { System.out.println("⚪"); } } class Triangle extends Shape { @Override public void draw() { System.out.println("🔺"); } } class Flower extends Shape { @Override public void draw() { System.out.println("🌹"); } } public class Test02 { public static void drawMap(Shape shape) { shape.draw(); } public static void drawMap1() { Rect rect = new Rect(); Cycle cycle = new Cycle(); Flower flower = new Flower(); Triangle triangle = new Triangle(); Shape[] shapes = {rect, cycle, rect, cycle, flower,triangle}; for (Shape sh : shapes) { sh.draw(); } } public static void main(String[] args) { Rect rect = new Rect(); Cycle cycle = new Cycle(); Triangle triangle = new Triangle(); Flower flower = new Flower(); drawMap(rect); drawMap(cycle); drawMap(triangle); drawMap(flower); System.out.println("----------------"); drawMap1(); } }
多态的实现条件
1.必须在继承的体系下
2.子类必须要对父类中的方法进行重写
3.通过父类的引用来调用重写的方法