一.先创建一个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的效果吧!

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信