一道Java基础入门题,请问我哪错了,怎么改

题目:你将在右侧看到三个待完成的文件:Animal.java, Bird.java, Fish.java。请编写上述三个文件,满足测试要求。

测试运行的主文件代码如下:

import javaoop.chapter3.*;

public class testPloymorphism {
public static void main(String[] args) {
Animal[] animals=new Animal[3];
animals[0]=new Animal();
animals[1]=new Bird();
animals[2]=new Fish();
for(Animal a:animals)
a.sing_a_song();
}
}
}
输出结果如下:

不是所有动物都会唱歌.
鸟儿在唱歌,叽叽喳喳.
鱼儿在歌唱,完了呛水了.

我写的:

package animal;

public class Animal {
void sing_a_song() {
System.out.println("不是所有的动物都会唱歌.");
}
}

package bird;

public class Bird extends Animal {
void sing_a_song() {
System.out.println("鸟儿在唱歌,叽叽喳喳.");
}
}

package fish;

public class Fish extends Animal {
void sing_a_song() {
System.out.println("鱼儿在唱歌,完了呛水了.");
}
}

import javaoop.chapter3.*;

如果主文件代码只有那么些的话,你的代码应该放在这个【javaoop.chapter3】包里,方法的访问权限应该为public,而不是default
public void sing_a_song()

方法前都加一个pulic

public void sing_a_song()