为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕雪6442864 2022-05-25 19:15:42
跪求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);}}
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

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

查看完整回答
反对 回复 2022-05-30
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

static void drawOneShape(Shape s){
s.draw();
}
这段代码是说,你给drawOneShape()传递一个shape类型的参数,可以是shape,也可以使Cricle等继承了shape的其他类,就会调用参数的draw()方法.输出相应的内容~.

查看完整回答
反对 回复 2022-05-30
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号