你好,请问以下这个方法在这段程序有什么作用?

跪求static void drawOneShape(Shape s){ s.draw();这个方法在这段程序有什么作用

import java.util. *;

//定义Shape类
class Shape{
void draw(){}
void erase(){}
}

//定义Cricle类
class Cricle extends Shape{
void draw(){
System.out.println("Calling Cricle.draw()");
}
void erase(){
System.out.println("Calling Cricle.erase()");
}
}

//定义Square类
class Square extends Shape{
void draw(){
System.out.println("Calling Square.draw()");
}
void erase(){
System.out.println("Calling Square.erase()");
}
}

//定义Triangle类
class Triangle extends Shape{
void draw(){
System.out.println("Calling Triangle.draw()");
}
void erase(){
System.out.println("Calling Triangle.erase()");
}
}

//包含main()的测试方法类
public class Shapes{
static void drawOneShape(Shape s){
s.draw();
}
static void drawShapes(Shape[] ss){
for(int i=0;i<=ss.length;i++){
ss[i].draw();
System.out.println(ss.length);
}

}

public static void main(String[] args){
Random rand = new Random();
Shape[] s = new Shape[9];
for(int i=0;i<s.length;i++){
switch(rand.nextInt(3)){
case 0:s[i] = new Cricle();break;
case 1:s[i] = new Square();break;
case 2:s[i] = new Triangle();break;
}
}
drawShapes(s);
}
}

慕雪6442864
浏览 158回答 2
2回答

忽然笑

drawOneSharp是一个带参数的静态方法,参数是Sharp类型的对象,也可以是它的子类对象,方法执行了被传递对象的draw方法,根据传递对象类型决定输出内容。

沧海一幻觉

static void drawOneShape(Shape s){s.draw();}这段代码是说,你给drawOneShape()传递一个shape类型的参数,可以是shape,也可以使Cricle等继承了shape的其他类,就会调用参数的draw()方法.输出相应的内容~.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android