知识点、 int key =Random().nextInt(3)//从键盘随机读取3个数从0开始
Import java.util.Random 导入Random随机数的包
Public static Animal getInstance(int key)//找到是那个子类对象,并且返回到Animal类型
之后和Animal animal=getIntance(key) 来进行向上转型—多态的运用
package duoytaixing.java1;
import java.util.Random;
/*
*
*/
public class DuoTaiXing {
public static Animal getInstance(int key)//得到一个子类对象,并且返回,返回值类型是Animal
{
switch(key)
{
case 0:
return new Cat();
case 1:
return new Dog();
default:
return new Sheep();
}
}
public static void main(String [] args)
{
int key =new Random().nextInt(3);
System.out.println(key);
Animal animal=getInstance(key);//getInstance(key)相当于new 子类名() new一个子类对象
animal.eat();//虚拟调用,变量调用子类父类中同名同参数的方法,但是在编译时,调用父类中的方法,在运行的时候,
//调用子类中重写父类的方法,不可以调用自己子类中特有的方法
}
}
class Animal{
protected void eat()
{
System.out.println("animal eat food");
}
}
class Cat extends Animal
{
protected void eat()
{
System.out.println("cat eat fish");
}
}
class Dog extends Animal{
public void eat() {
System.out.println("Dog eat bone");
}
}
class Sheep extends Animal{
public void eat()
{
System.out.println("Sheep eat brass");
}
}