利用继承实现多态。

写一个动物园程序,可以向里面添加动物,并显示是第几个该类型的动物,并统计动物园里共有多少动物。

animal类:

package hw3;

public class animal {
    static int sum=0;
    public animal()
    {

    }
    public void show()
    {
        System.out.println("动物园一共有"+sum+"只动物");
    }

}

dog类

package hw3;

public class dog extends animal{
    static int dog_sum=0;
    public dog()
    {

    }
    public void show()
    {
        super.sum++;
        dog_sum++;
        System.out.println("我是狗,是第"+dog_sum+"只狗");
        super.show();
    }
}

cat类

package hw3;

public class cat extends animal{
    static int cat_sum=0;
    public cat()
    {

    }
    public void show()
    {
        super.sum++;
        cat_sum++;
        System.out.println("我是猫,是第"+cat_sum+"只猫");
        super.show();
    }
}

pig类

package hw3;

public class pig extends animal{
    static int pig_sum=0;
    public pig()
    {

    }
    public void show()
    {
        super.sum++;
        pig_sum++;
        System.out.println("我是猪,是第"+pig_sum+"只猪");
        super.show();
    }

}

主类

package hw3;
import java.util.*;
public class main_animal {
    public static void show_interface(animal sc)
    {
        sc.show();
    }
    public static void main(String[] args)
    {
        Scanner s=new Scanner(System.in);
        animal an=new animal();
        while(true)
        {
            System.out.println("请输入添加的动物类型(dog,cat,pig)(输入exit退出程序):");
            String m=s.nextLine();
            if(m.equals("exit"))
            {
                System.out.println("程序已退出");
                break;
            }
            switch(m)
            {
            case("dog"):
            {
                an=new dog();
                show_interface(an);
                break;
            }
            case("cat"):
            {
                an=new cat();
                show_interface(an);
                break;
            }
            case("pig"):
            {
                an=new pig();
                show_interface(an);
                break;
            }
            default:
            {
                System.out.println("非法字符,重新输入");
                break;
            }
            }
        }
    }
}

运行结果:

QkAELR.png
QkAELR.png