Java简单的问题Feeder.feed(animal,food);
interface Food{
    void annimal_food();
}
abstract class Animal{
     abstract void eat(Food food);
}
class Feeder{
    void feed(Animal a,Food f) {
        System.out.println("表示动物a喂食物f");
    }
}
class Bone implements Food{
     public void  annimal_food() {
        System.out.println("我是骨头");
    }
}
class Fish extends Animal implements Food{
    @Override
    public void eat(Food food) {
        System.out.println("我是鱼,我吃东西");
    }
    public void annimal_food() {
        System.out.println("我是鱼");
    }
}
class Cat extends Animal{
    public void eat(Food food) {
        System.out.println("我是猫,我要吃东西");
    }
}
class Dog extends Animal{
    public void eat(Food food) {
        System.out.println("我是狗,我要吃东西");
    }
}


public class Test {
    Feeder feeder = new Feeder();
    Animal animal = new Cat();
    Food food = new Fish();
    Feeder.feed(animal,food);
}

Feeder.feed(animal,food);为什么报错

2个回答

feeder.feed(animal,food);
第一个f小写
大写代表的是Feeder类,不是对象feeder

class Untitled {
    public static void main(String[] args) {
        Feeder feeder = new Feeder();
        Animal animal = new Cat();
        Food food = new Fish();
        feeder.feed(animal,food);
    }
}

interface Food{
    void annimal_food();
}
abstract class Animal{
     abstract void eat(Food food);
}
class Feeder{
    void feed(Animal a,Food f) {
        System.out.println("表示动物a喂食物f");
    }
}
class Bone implements Food{
     public void  annimal_food() {
        System.out.println("我是骨头");
    }
}
class Fish extends Animal implements Food{
    @Override
    public void eat(Food food) {
        System.out.println("我是鱼,我吃东西");
    }
    public void annimal_food() {
        System.out.println("我是鱼");
    }
}
class Cat extends Animal{
    public void eat(Food food) {
        System.out.println("我是猫,我要吃东西");
    }
}
class Dog extends Animal{
    public void eat(Food food) {
        System.out.println("我是狗,我要吃东西");
    }
}

表示动物a喂食物f

问题解决的话,请点下采纳

public class Test {
    public static void main(String[] args) {
        Feeder feeder = new Feeder();
        Animal animal = new Cat();
        Food food = new Fish();
        feeder.feed(animal,food);
    }   
}

因为feeder.feed是方法调用,不能将方法调用直接写在类里,应该写在类的某个方法里。类只负责定义属性和方法等,不负责实际的调用动作。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐