一.先创建一个Animal类
代码如下:
public class Animal {
private String name;
private int 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 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 +
'}';
}
}
二.Animal类里面的Cat,Dog,Bird
Cat:
代码如下:
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()+"]正在玩老鼠");
}
}
Dog:
代码如下:
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()+"]正在玩球球");
}
}
Bird:
代码如下:
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()+"]正在到处飞");
}
}
三.创建Student
代码如下:
public class Student1 {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void feed(Animal animal) {
if (animal instanceof Cat) {//判断是否是猫实例
System.out.println(name + "喂养猫咪[" + animal.getName() + "]。");
} else if(animal instanceof Dog) {//判断是否是狗实例
System.out.println(name + "喂养狗狗[" + animal.getName() + "]。");
} else if(animal instanceof Bird) {//判断是否是鸟实例
System.out.println(name + "喂养鸟鸟[" + animal.getName() + "]。");
} else {
System.out.println(name + "喂养动物[" + animal.getName() + "]。");
}
animal.move();//体现多态
animal.eat();//体现多态
}
}
四:创建TestStudent
代码如下:
public class TestStudent {
public static void main(String[] args) {
//创建学生对象
Student student = new Student();
student.setName("张力文");
//创建第一个动物
Animal animal1=new Cat();
animal1.setName("文雅兰");
animal1.setAge(19);
//创建第二个动物
Animal animal2 = new Dog();
animal2.setName("邹雪森");
animal2.setAge(19);
//创建第三个动物
Animal animal3 = new Bird();
animal3.setName("何妃");
}
}
自己动手看看RUN的效果吧!