关于public的一些疑问

来源:百度知道 编辑:UC知道 时间:2024/05/05 02:57:51
近来在学java的接口的时候,有下面一个例子。当接口和类前面加上public的时候,接口和每个类都出现类似的编译错误,如下: class Say is public, should be declared in a file named Say.java。当去掉public时可以正常编译和运行。我想请教下是怎么回事
程序如下:
import java.util.*;

//声明一个接口
public interface Say
{

public void sayMessage();

}

//两个实现类

public class SayHello implements Say
{

public void sayMessage()
{
System.out.println("hello");
}
}

public class SayHi implements Say
{

public void sayMessage()
{

System.out.println("Hi");

}
}

//这是一个测试类

public class TestSay {

public static void main(String[] args) {

//同样都是用Say这个接口类型实例,却可以输出两个结果

Say say = new SayHello();

say.sayMessage();

Say say1 = new SayHi(

你是不是一个文件里写了两个或以上的类 ,
在一个java文件中只能由一个public 类 其他的不能定义成public
并且 public的类 要与你文件名一直
----------------------------------
写两个文件不就得了,同样接口名同文件名,真不爱说了。好好看看java基础内部类那块,这种错误我从学java到现在三年多就没犯过(从来就没写过内部类,哈)

一个文件两个public类当然不行啊!