请用Java代码解释一下什么是多态

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 144 收藏 0 点赞 0 评论 0

public class Farmyard
{
public static void main(String[] args)
{
Animal[] theYard = { new Cat(), new Dog(), new Cow(), new Pig(), new Mouse() };

Animal currentAnimal;

//get a random number generator
Random rng = new Random();

//make 10 random choices of Animal
for (int i = 0; i < 10; i++)
{
currentAnimal = theYard[rng.nextInt(theYard.length)];
System.out.println(currentAnimal.getType() + ” ” + currentAnimal.speak());
}
}
}
/***********************************************************************************
*/

abstract class Animal
{
private String type;

public Animal(String type)
{
this.type = type;
}

public String getType()
{
return type;
}

public abstract String speak();
}

/************************************************************************************
*/
class Cat extends Animal
{
public Cat()
{
super(“Cat”);
}

public String speak()
{
return (“Miaow”);
}
}

class Mouse extends Animal
{
public Mouse()
{
super(“Mouse”);
}

public String speak()
{
return (“Squeak”);
}
}

class Pig extends Animal
{
public Pig()
{
super(“Pig”);
}

public String speak()
{
return (“Grunt”);
}
}

class Cow extends Animal
{
public Cow()
{
super(“Cow”);
}

public String speak()
{
return (“Moo”);
}
}

class Dog extends Animal
{
public Dog()
{
super(“Dog”);
}

public String speak()
{
return (“Woof”);
}
}

评论列表
文章目录