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()”方法

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

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行为。。。");
    }
}

这题目出的太细了,都已经是伪代码了,你翻译成代码就行了,用不着思考啊

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632