关于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(
程序如下:
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类当然不行啊!