沉默者cyz 2022-04-15 08:45 采纳率: 50%
浏览 319
已结题

编写一个Animal类,运用抽象方法。

编写一个Animal类,设计相应的属性和抽象方法eat()与talk()方法,再编写子类,狗、猫、猪,牛,最后编写Master类,里面有一个feed()方法,使用多态实现调用feed方法进行喂养!例如:用户输入狗,那么控制台就是输出去喂狗!

下面是我写的

import java.util.Scanner;

class Master{
public void feed(Pet d) {
d.eat();
d.talk();
}
}
class Pet{
public void eat() {

}

public void talk() {
    // TODO 自动生成的方法存根
    
}

}
class Pet1{
public void talk() {}
}
class Dog extends Pet{
public void eat() {
System.out.println("出去喂狗!");
}
// public void talk() {
// System.out.println();
// }
}
class Cat extends Pet{
public void eat() {
System.out.println("出去喂猫!");
}
// public void talk() {
// System.out.println();
// }
}
class Pig extends Pet{
public void eat() {
System.out.println("出去喂猪!");
}
// public void talk() {
// System.out.println();
// }
}
class Cattle extends Pet{
public void eat() {
System.out.println("出去喂牛!");
}
// public void talk() {
// System.out.println();
// }
}
public class Animal {

public static void main(String[] args) {
    try (// TODO 自动生成的方法存根
    Scanner sc = new Scanner(System.in)) {
        System.out.println("请输入狗,猫,猪,牛的其中一个动物:");
        String name=sc.next();
        System.out.println("出去喂"+name+"!");
        System.out.println("");
    Master m=new Master();
    m.feed(new Dog());
    m.feed(new Cat());
    m.feed(new Pig());
    m.feed(new Cattle());
    }
}

}

输出结果

img

要把下面的输出结果(我用红线标出来)不再显示,而上面的,用户输入动物,输出就对应哪种动物出去喂它。这才是我想要的结果。

展开全部

  • 写回答

3条回答 默认 最新

  • 溪风沐雪 2022-04-15 09:00
    关注
    
    package com.example;
    
    import java.util.Scanner;
    class Master {
        public void feed(Animal a) {
            a.eat();
            a.talk();
        }
    }
    abstract class  Animal {
        public abstract void eat();
        public abstract void talk();
    }
    class Dog extends Animal {
        public void eat() {
            System.out.println("出去喂狗!");
        }
        public void talk() {
            
        }
    }
    class Cat extends Animal {
        public void eat() {
            System.out.println("出去喂猫!");
        }
        public void talk() {
            
        }
    }
    class Pig extends Animal {
        public void eat() {
            System.out.println("出去喂猪!");
        }
        public void talk() {
            
        }
    }
    class Cattle extends Animal {
        public void eat() {
            System.out.println("出去喂牛!");
        }
        public void talk() {
            
        }
    }
    public class Demo {
        public static void main(String[] args) {
            Master m = new Master();
            Scanner sc = new Scanner(System.in);
            while (true) {
                System.out.println("请输入狗,猫,猪,牛的其中一个动物:");
                String name = sc.next();
                switch (name) {
                    case "狗":
                        m.feed(new Dog());
                        break;
                    case "猫":
                        m.feed(new Cat());
                        break;
                    case "猪":
                        m.feed(new Pig());
                        break;
                    case "牛":
                        m.feed(new Cattle());
                        break;
                    default:
                        System.out.println("没有这种动物");
                        break;
                }
            }
        }
    }
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    溪风沐雪 2022-04-15 09:02

    你参考一下这个吧,之前给你的例子有些内容知道要干啥,我就删了,talk方法写了个空的,如果有什么需求你自己补一下吧

    回复
    沉默者cyz 回复 溪风沐雪 2022-04-15 09:12

    谢谢(*°∀°)=3

    回复
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部