- 动物类(Animal):属性(name、age)、方法(speak、move、eat)
- 猫类(Cat)继承动物类,添加新方法(play)
- 狗类(Dog)继承动物类,添加新方法(play)
- 鸟类(Bird)继承动物类,添加新方法(play)
- 学生类(Student):属性(name)、方法(feed(animal))
1、创建动物类
public class Animal {
private String name;
private int age;
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 speak() {
System.out.println(name + "今年" + age + "岁了。");
}
public void move() {
System.out.println(name + "在动....." );
}
public void eat() {
System.out.println(name + "在吃....." );
}
@Override
public String toString() {
return "Animal{" +
"name=" + name +'\'' +
", age=" + age +
'}';
}
}
2、继承动物类,创建猫类
public class Cat extends Animal{
@Override
public void move(){
System.out.println("猫咪[" + getName() +"]在走路。");
}
@Override
public void eat() {
System.out.println("猫咪[" + getName() + "]爱吃鱼虾。");
}
public void play() {
System.out.println("猫咪[" + getName() + "]玩老鼠。");
}
}
3、继承动物类,创建狗类
public class Dog extends Animal{
@Override
public void move(){
System.out.println("狗崽[" + getName() +"]在蹦跳。");
}
@Override
public void eat() {
System.out.println("狗崽[" + getName() + "]爱吃骨头。");
}
public void play() {
System.out.println("狗崽[" + getName() + "]玩飞盘。");
}
}
4、继承动物类,创建鸟类
public class Bird extends Animal{
@Override
public void move(){
System.out.println("鸟儿[" + getName() +"]在飞翔。");
}
@Override
public void eat() {
System.out.println("鸟儿[" + getName() + "]爱吃小虫。");
}
public void play() {
System.out.println("鸟儿[" + getName() + "]玩羽毛。");
}
}
5、创建学生类
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void feed(Animal animal) {
animal.speak();
animal.move();
animal.eat();
if (animal instanceof Cat) {
System.out.println(name + "喂养猫咪[" + animal.getName() + "]。");
Cat cat = (Cat) animal;
cat.play();
} else if (animal instanceof Dog) {
System.out.println(name + "喂养狗崽[" + animal.getName() + "]。");
Dog dog = (Dog) animal;
dog.play();
}else if (animal instanceof Bird) {
System.out.println(name + "喂养鸟儿[" + animal.getName() + "]。");
Bird bird = (Bird) animal;
bird.play();
}else {
System.out.println(name + "喂养动物[" + animal.getName() + "]。");
}
}
}
6、创建测试学生类
public class TsetStudent {
public static void main(String[] args) {
Student student = new Student();
student.setName("April");
Animal animal1 = new Cat();
animal1.setName("Q宝");
animal1.setAge(4);
Animal animal2 = new Dog();
animal2.setName("瑞瑞");
animal2.setAge(5);
Animal animal3 = new Bird();
animal3.setName("豆豆");
animal3.setAge(3);
student.feed(animal1);
student.feed(animal2);
student.feed(animal3);
}
}
7、运行程序,查看结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c362c0f53004d2aba86c5348902be66.png#pic_center)