kkkz. 2022-11-10 14:06 采纳率: 33.3%
浏览 79
已结题

Java实验报告题 求解

1·定义一个父类“Animal”,包含public成员属性“名字”、“年龄”与方法“showProfile()”。方法“showProfile()”,把对象的所有属性信息组合成一个字符串。接着,定义其子类“Cat”并包含一个成员方法“sleep()”,模拟睡觉行为。编程创建“Cat”类的对象,为该对象的“名字”、“年龄”属性赋值,并调用父类中定义的方法“showProfile()”与子类中定义的方法“sleep()”
2· 在上题的基础上,定义一个“Animal”的子类“Dog”,包含成员方法“run()” ,模拟奔跑行为。编程分别创建一个“Cat”类的对象和一个“Dog”类的对象并分别为两个对象的属性赋值,分别调用它们的“showProfile()”方法,然后调用各对象特有的方法“sleep()”和“run()”
3· 在上题的基础上为“Animal”类增加成员方法“speak()”,模拟发声行为,并在子类“Cat”与“Dog”中分别覆盖重写该方法,编程创建两个子类的对象并调用“showProfile()”及“speak()”方法
4· 在上题的基础上编程创建一个长度为4的“Animal”类的数组,并创建该数组中的偶数元素为“Cat”类的对象,奇数元素为“Dog”类的对象,调用数组中所有对象的“speak()”方法

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-11-10 14:09
    关注

    这种题网上都有的,很经典的继承案例。

    public class AnimalTest {
        public static void main(String[] args) {
            Cat cat=new Cat("小猫",2);
            System.out.println(cat.showProfile());
            cat.sleep();
    
            Dog dog=new Dog("小狗",3);
            System.out.println(dog.showProfile());
            dog.run();
            System.out.println("");
            Animal [] animals={new Dog(),new Cat(),new Dog(),new Cat()};
            for(Animal a:animals){
                a.speak();
            }
        }
    }
    
    class Animal{
        public String name;
    
        public int age;
    
        public String showProfile(){
            return "name:"+name+",age="+age;
        }
    
        public void speak(){}
    }
    
    class Cat extends Animal{
    
        public Cat(){
    
        }
        public Cat(String name, int age) {
            this.name=name;
            this.age=age;
        }
    
        public void sleep(){
            System.out.println("cat有睡觉行为。。。");
        }
    
        @Override
        public void speak() {
            System.out.println("cat有speak行为。。。");
        }
    }
    
    class Dog extends Animal{
    
        public Dog(){
    
        }
        public Dog(String name, int age) {
            this.name=name;
            this.age=age;
        }
        public void run(){
            System.out.println("dog有奔跑行为。。。");
        }
    
        @Override
        public void speak() {
            System.out.println("dog有speak行为。。。");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 Mac(标签-IDE|关键词-File) idea
  • ¥15 潜在扩散模型的Unet特征提取
  • ¥15 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器