qq_40971625 2021-06-22 14:01 采纳率: 100%
浏览 50
已采纳

想知道如何满足这个需求

一:
1. 定义书写功能接口(writeAction)
    a)    抽象方法void  write() 

2. 定义笔类(Pen),实现writeAction接口,重写write()方法,方法内不需要编写内容;
    a)    属性: Price 价格(Float),color颜色(String 类型);
    b)    提供空参,满参构造方法和set/get方法;

3. 定义画笔类(Brush)  继承 Pen 0
    a)    重写Pen中write()方法: 输出格式: “现在使用的是价格为XXX的YYY颜色的画笔”,其中XXX为Brush的价格,YYY为Brush的颜色;
    b)    提供空参,满参构造方法

4. 定义铅笔类(Pencil)  继承 Pen 
    a)     重写Pen中write()方法: 输出格式: “”,其中XXX为Pencil的价格,YYY为Pencil的颜色;
   b)    提供空参,满参构造方法

5. 定义画家类(Painter)
    a)    属性: name姓名(String)
    b)    成员方法 : 绘画方法(void draw(Pen p)),首先输出“画家XX正在绘画,”,然后调用p对象的write方法,其中XX为Painter的姓名
    c)    提供空参,满参构造方法;set/get方法

6. 测试类Test
    a)    提供main方法
    b)    在main方法中
            i.创建Brush类对象b1,价格赋值为5.8,颜色赋值为红色;
            ii.创建Pencil类对象p1,价格赋值为2.5,颜色赋值为黑色;
            iii.创建Painter对象,姓名赋值为王流秋;调用两次Painter的draw方法,分别传入b1和p1;进行测试;

  • 写回答

1条回答 默认 最新

  • 关注
    
    interface WriteAction{
    	
    	void  write();
    }
    class Pen implements WriteAction{
    	float price ;
    	String color;
    	public Pen() {
    		
    	}
    	public Pen(float price,String color) {
    		this.price = price;
    		this.color = color;
    	}
    	@Override
    	public void write() {
    		
    	}
    	
    }
    class Brush extends Pen{
    	public Brush() {}
    	public Brush(float price ,String color) {
    		super(price,color);
    	}
    	@Override
    	public void write() {
    		System.out.println("现在使用的是价格为"+price+"的"+color+"颜色的画笔”,其中"+price+"为Brush的价格,"+color+"为Brush的颜色");
    	}
    }
    class Pencil extends Pen{
    	public Pencil() {}
    	public Pencil(float price ,String color) {
    		super(price,color);
    	}
    	@Override
    	public void write() {
    		System.out.println("其中"+price+"为Pencil的价格,"+color+"为Pencil的颜色");
    	}
    }
    class Painter{
    	String name;
    	public Painter() {}
    	public Painter(String name) {
    		this.name = name;
    	}
    	
    	public void draw(Pen p) {
    		System.out.println("画家"+name+"正在绘画,");
    		p.write();
    	}
    }
    public class 笔 {
    	public static void main(String[] args) {
    		Pen b1 = new Brush(5.8f,"红色");
    		Pen p1 = new Pencil(2.5f,"黑色");
    		Painter painter = new Painter("王流秋");
    		painter.draw(b1);
    		painter.draw(p1);
    	}
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?