猿问

public void eat(Food f){...}中的(Food f)是什么意思

public class Demo {

    public static void main(String[] args){

        // 借助多态,主人可以给很多动物喂食

        Master ma = new Master();

        ma.feed(new Animal(), new Food());

        ma.feed(new Cat(), new Fish());

        ma.feed(new Dog(), new Bone());

    }

}


// Animal类及其子类

class Animal{

    public void eat(Food f){

        System.out.println("我是一个小动物,正在吃" + f.getFood());

    }

}


class Cat extends Animal{

    public void eat(Food f){

        System.out.println("我是一只小猫咪,正在吃" + f.getFood());

    }

}


class Dog extends Animal{

    public void eat(Food f){

        System.out.println("我是一只狗狗,正在吃" + f.getFood());

    }

}


// Food及其子类

class Food{

    public String getFood(){

        return "事物";

    }

}


class Fish extends Food{

    public String getFood(){

        return "鱼";

    }

}


class Bone extends Food{

    public String getFood(){

        return "骨头";

    }

}


// Master类

class Master{

    public void feed(Animal an, Food f){

        an.eat(f);

    }

}


qq_拚却_0
浏览 3175回答 3
3回答

慕运维8323309

f 是传入参数 Food是f的类型

Camel97

意思是这个函数需要你传递一个food类的对象或food类的子类的对象。

__YXQ__

表示形参为Food类或其子类的对象
随时随地看视频慕课网APP

相关分类

Java
我要回答