类XXX是公共的, 应在名为 XXX.java 的文件中声明
原码如下:
public class Bird {//bird类的fly方法public void fly () {System.out.println("我在天空自由的飞翔!");}}public class Ostrich extends Bird {//重写Bird类的fly方法public void fly () {System.out.println("我不能飞,我只能奔跑");}public static void main (String [] agrs) {//创建Ostrich对象 Ostrich os = new Ostrich();//执行Ostrich对象的fly()方法os.fly();}}
编译结果如下:
E:\develop\code>javac Ostrich.javaOstrich.java:2: 错误: 类Bird是公共的, 应在名为 Bird.java 的文件中声明public class Bird {^1 个错误E:\develop\code>
问题所在:
一个文件中有多个类,只有与文件名一致的类名,才能声明为:public
内部类不能声明为:public
一个文件中只能有一个public类
改进方法:
- 把class类写在一个以它的class名字为文件名的文件里
public class Ostrich extends Bird {//重写Bird类的fly方法public void fly () {System.out.println("我不能飞,我只能奔跑");}public static void main (String [] agrs) {//创建Ostrich对象 Ostrich os = new Ostrich();//执行Ostrich对象的fly()方法os.fly();}class Bird {//bird类的fly方法public void fly () {System.out.println("我在天空自由的飞翔!");}}}
结果如下:
E:\develop\code>javac OStrich.javaE:\develop\code>java Ostrich我不能飞,我只能奔跑
注:
也可以将两个class类保存在不同的文件夹