m0_72611807 2022-07-07 21:15 采纳率: 66.7%
浏览 49
已结题

java面对对象多态

一:

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

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

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

  4. 定义铅笔类(Pencil),继承 Pen
    a)重写Pen中write()方法: 输出格式: "现在使用的是价格为X的Y颜色的铅笔",其中X为Pencil的价格,Y为Pencil的颜色;
    b)提供空参,满参构造方法

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

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

二:
1.定义接口Teach,要求如下:
定义抽象方法 void teaching();

2.定义类Teacher,实现接口Teach,包含空参构造,满参构造和以下成员变量
姓名 name(String 类型)
学科 course(String类型)
实现抽象方法teaching(),在方法内输出"我是X师傅,我教Y学科"
PS: X表示姓名,Y表示学科

3.定义Student类,包含空参构造,满参构造和以下成员变量
姓名 name(String类型)
分数 score(int 类型)
师傅 Teacher teacher

定义一个无参无返回值的方法getMyResult(),实现要求如下:
1).在方法内输出"我是学生S,我的师傅是W,他教我Z学科"
PS:SS是学生的姓名,W是teacher的姓名,Z是teacher所教学科

2).判断学员分数是否大于等于60分,如果大于等于60分,则输出"继续加油哦"
如果小于60分,则输出"成绩太低了,师傅W让我回去罚写100遍"
PS:W是teacher的姓名

4.定义测试类(Test),在main方法中,创建教师对象、学生对象并赋值
调用teaching()、getMyResult()方法

三:
1.定义手机类Phone
行为: 打电话(call),发短信(sendMessage)
2.定义接口IPlay
行为: 玩游戏(play)
3.定义旧手机类(OldPhone)继承手机类
行为: 继承父类的行为
4.定义新手机类(NewPhone)继承手机类实现IPlay接口
行为: 继承父类的行为,重写玩游戏方法
5.定义测试类(Test),创建对象并调用方法,运行效果如下(使用多态):
旧手机打电话
旧手机发信息
新手机打电话
新手机发信息
新手机玩游戏

  • 写回答

2条回答 默认 最新

  • 喵喵@香菜 2022-07-07 21:56
    关注
    public interface WriteAction {
    
      void write();
    
    }
    
    
    public class Pen implements WriteAction{
    
      protected float price;
    
      protected String color;
    
      public Pen(){
    
      }
    
      public Pen(float price, String color) {
        this.price = price;
        this.color = color;
      }
    
      @Override
      public void write() {
    
      }
    
      public float getPrice() {
        return price;
      }
    
      public void setPrice(float price) {
        this.price = price;
      }
    
      public String getColor() {
        return color;
      }
    
      public void setColor(String color) {
        this.color = color;
      }
    }
    
    public class Brush extends Pen{
    
      public Brush() {
      }
    
      public Brush(float price, String color){
        super(price, color);
      }
    
      @Override
      public void write() {
        System.out.println("现在使用的是价格为"+ price + "的"+ color + "颜色的画笔");
      }
    }
    
    
    
    public class Pencil extends Pen{
    
      public Pencil() {
      }
    
      public Pencil(float price, String color) {
        super(price, color);
      }
    
      @Override
      public void write() {
        System.out.println("现在使用的是价格为"+ price + "的"+ color + "颜色的铅笔");
      }
    }
    
    
    public class Painter {
    
      private String name;
    
      public Painter(){
    
      }
    
      public Painter(String name) {
        this.name = name;
      }
    
      public void draw(Pen p){
        System.out.println("画家" + name + "正在绘画");
        p.write();
      }
    
    }
    
    public class Test {
    
      public static void main(String[] args) {
        Brush b1 = new Brush(5.8f, "红色");
        Pencil p1 = new Pencil(2.5f, "黑色");
        Painter painter = new Painter("王流秋");
        painter.draw(b1);
        painter.draw(p1);
      }
    
    }
    
    

    运行结果:
    画家王流秋正在绘画
    现在使用的是价格为5.8的红色颜色的画笔
    画家王流秋正在绘画
    现在使用的是价格为2.5的黑色颜色的铅笔

    第二个差不多,基本概念懂了就行,望采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 已采纳回答 7月9日
  • 创建了问题 7月7日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题