题目:
代码:
继承、抽象类:动物,猫,狗
动物抽象类:
public abstract class Animal {//抽象类
private String name;
private int age;
public Animal() {
}
public Animal(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 abstract void eat();
}
猫抽象类:
public abstract class Cat extends Animal{
public Cat() {
}
public Cat(String name, int age) {
super(name, age);
}
}
狗抽象类:
public abstract class Dog extends Animal{
//继承
public Dog() {
}
public Dog(String name, int age) {
super(name, age);
}
}
不同猫吃东西类方法:
public class LiHuaCat extends Cat{
//狸花猫
public LiHuaCat() {
}
public LiHuaCat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("一只叫做"+getName()+"的,"+getAge()+"岁的狸花猫,正在吃鱼");
}
}
public class HuSKies extends Dog{
public HuSKies() {
} //哈士奇
public HuSKies(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("一只叫做"+getName()+"的,"+getAge()+"岁的哈士奇,正在吃骨头,边吃边拆家");
}
}
不同狗吃东西类方法:
public class HuSKies extends Dog{
public HuSKies() {
} //哈士奇
public HuSKies(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("一只叫做"+getName()+"的,"+getAge()+"岁的哈士奇,正在吃骨头,边吃边拆家");
}
}
public class TedDy extends Dog{
public TedDy() {
} //泰迪
public TedDy(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("一只叫做"+getName()+"的,"+getAge()+"岁的泰迪,正在吃骨头,边吃边蹭");
}
}
测试类:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<PersianCat> persianCats = new ArrayList<>();
ArrayList<LiHuaCat> liHuaCats = new ArrayList<>();
PersianCat persianCat = new PersianCat("小航", 14);
persianCats.add(persianCat);
KeepPer(persianCats);
LiHuaCat liHuaCat = new LiHuaCat("NTK", 14);
liHuaCats.add(liHuaCat);//添加类
KeepPer(liHuaCats);
}
//只有猫,没有狗
public static void KeepPer(ArrayList<? extends Cat> list) {
for (Animal cat : list) {
cat.eat();//打印集合中的方法
}
}
结果:
一只叫做小航的,14岁的波斯猫,正在吃小饼干
一只叫做NTK的,14岁的狸花猫,正在吃鱼