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)!