自学内容网 自学内容网

Java面向对象练习(1) (2024.7.11)

        动物类

package Animal20240711;

public abstract class Animal {
    private String category;
    private int age;

    public Animal() {}

    public Animal(String category, int age) {
        this.category = category;
        this.age = age;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public abstract void eat();

}

        猫类

package Animal20240711;

public class Cat extends Animal{
    public Cat() {}

    public Cat(String category, int age) {
        super(category, age);  // 父类的构造方法先行
    }

    @Override
    public void eat() {
        System.out.println("猫在吃鱼");
    }
}

        狗类

package Animal20240711;

public class Dog extends Animal implements Swim{
    public Dog() {}

    public Dog(String category, int age) {
        super(category, age);
    }

    @Override
    public void eat() {
        System.out.println("狗在吃肉");
    }

    @Override
    public void swim() {
        System.out.println("狗会游泳");
    }
}

        人类

package Animal20240711;

public class Person {
    String name;
    int age;

    public Person() {}

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void KeepPets(Animal a) {
        System.out.println("人在喂" + a.getCategory());
        if (a instanceof Dog d) {
            d.swim();
        }
    }
}

        游泳接口

package Animal20240711;

public interface Swim {
    public abstract void swim();
}

        测试

package Animal20240711;
import java.util.Scanner;
public class AnimalTest {
    public static void main(String[] args) {
        Dog d = creatDog();
        Cat c = creatCat();
        d.eat();
        d.swim();
        c.eat();
        Person p = new Person("张三", 20);
        p.KeepPets(d);
        p.KeepPets(c);
    }

    public static Dog creatDog() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入狗的种类");
        String category = sc.next();
        System.out.println("请输入狗的年龄");
        int age = sc.nextInt();
        return new Dog(category, age);
    }
    public static Cat creatCat() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入猫的种类");
        String category = sc.next();
        System.out.println("请输入猫的年龄");
        int age = sc.nextInt();
        return new Cat(category, age);
    }
}

 

 

 

 

 


原文地址:https://blog.csdn.net/Aishangyuwen/article/details/140359646

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!