package forth; import java.awt.*; import java.util.*; class Shape { public void draw() { System.out.println("Shape"); }; } class Circle extends Shape { public void draw() { System.out.println("draw Circle"); } } class Rectangle extends Shape { public void draw() { System.out.println("draw Rectangle"); } } class Triangle extends Shape { public void draw() { System.out.println("draw Triangle"); } } public class five{ public static void main(String[] argc) { ArrayList _list = new ArrayList(); _list.add(new Circle()); _list.add(new Rectangle()); _list.add(new Triangle()); draw(_list); } public static void displayObject(Shape _s) { _s.draw(); } public static void draw(ArrayList _list) { int _sz = _list.size(); for (int _i =0; _i < _sz;_i++){ Shape _s = (Shape)(_list.get(_i)); _s.draw(); } } }简单解释一下
时间: 2024-01-28 07:04:44 浏览: 178
这是一个 Java 代码示例,定义了一个 Shape 类和三个子类 Circle、Rectangle 和 Triangle,它们都继承自 Shape。Shape 类有一个方法 draw(),其默认实现是输出字符串 "Shape"。子类 Circle、Rectangle 和 Triangle 分别覆写了 draw() 方法,输出特定的字符串。five 类中包含一个 main 方法,创建了一个 ArrayList 对象 _list,并向其中添加了一个 Circle、一个 Rectangle 和一个 Triangle 对象。接着调用了 draw(_list) 方法,该方法遍历 _list 中所有的 Shape 对象,调用其 draw() 方法输出相应的字符串。
此代码示例演示了多态的概念,子类 Circle、Rectangle 和 Triangle 分别覆写了父类 Shape 的 draw() 方法,这样在 ArrayList 中存储不同的 Shape 对象,调用其 draw() 方法时会根据实际类型输出相应的字符串。这是 Java 中实现多态的一种方式。
阅读全文