错误信息:
TestInterface.java:7: 类 Valueable 是公共的,应在名为 Valueable.java 的文件中声
明
public interface Valueable{
^
TestInterface.java:12: 类 Protectable 是公共的,应在名为 Protectable.java 的文件
中声明
public interface Protectable{
^
2 错误
我把接口和实现接口的类放在一个java文件中,命名为:TestInterface.java,出现上面的错误。
但如果把接口和实现它的类分开,那么就没有错误,这是为什么 ?
配置环境:jdk1.6
编辑工具:ultraEdit
//创建抽象类Animal
abstract class Animal{
public abstract void sleep();
public abstract void talk();
}
//创建接口
public interface Valueable{
public abstract double setValue(double value);
//public double getVaule();
}
//创建接口
public interface Protectable{
public abstract boolean IsOrNotProtect(boolean protect);
}
//创建金丝猴类继承自Animal实现Valueable和Protectable
class GoldenMonkey extends Animal implements Valueable,Protectable{
public void sleep(){
System.out.println("挂在树上");
}
public void talk(){
System.out.println("吼叫");
}
public double setValue(double value){
return value;
}
public boolean IsOrNotProtect(boolean protect){
return protect;
}
}
class TestInterface{
public static void main(String[] args){
GoldenMonkey gm=new GoldenMonkey();
gm.sleep();
gm.talk();
}
}
TestInterface.java:7: 类 Valueable 是公共的,应在名为 Valueable.java 的文件中声
明
public interface Valueable{
^
TestInterface.java:12: 类 Protectable 是公共的,应在名为 Protectable.java 的文件
中声明
public interface Protectable{
^
2 错误
我把接口和实现接口的类放在一个java文件中,命名为:TestInterface.java,出现上面的错误。
但如果把接口和实现它的类分开,那么就没有错误,这是为什么 ?
配置环境:jdk1.6
编辑工具:ultraEdit
//创建抽象类Animal
abstract class Animal{
public abstract void sleep();
public abstract void talk();
}
//创建接口
public interface Valueable{
public abstract double setValue(double value);
//public double getVaule();
}
//创建接口
public interface Protectable{
public abstract boolean IsOrNotProtect(boolean protect);
}
//创建金丝猴类继承自Animal实现Valueable和Protectable
class GoldenMonkey extends Animal implements Valueable,Protectable{
public void sleep(){
System.out.println("挂在树上");
}
public void talk(){
System.out.println("吼叫");
}
public double setValue(double value){
return value;
}
public boolean IsOrNotProtect(boolean protect){
return protect;
}
}
class TestInterface{
public static void main(String[] args){
GoldenMonkey gm=new GoldenMonkey();
gm.sleep();
gm.talk();
}
}
比如:
文件名:test1.java
public class test1{ }
public class test2{ } //错误文件名:test1.java
public class test1{ }
class test2{ } //正确你只能把那个与文件名相同的类或接口定义为public的或者不写。
你这段代码中把interface前面的public去掉就行了
你的类名是TestInterface.java,那么只能将TestInterface类设置为public,其他的访问权限要小于public ,比如private package(默认)
一个.java 文件只能有一个 public 类,且文件名必须为 public 类类名.java
而接口是特殊的类,且必须是 public 型的,即使你不写 public 也是 public 的
abstract class Animal{
public abstract void sleep();
public abstract void talk();
}
//创建接口
interface Valueable{
public abstract double setValue(double value);
//public double getVaule();
}
//创建接口
interface Protectable{
public abstract boolean IsOrNotProtect(boolean protect);
}
//创建金丝猴类继承自Animal实现Valueable和Protectable
class GoldenMonkey extends Animal implements Valueable,Protectable{
public void sleep(){
System.out.println("挂在树上");
}
public void talk(){
System.out.println("吼叫");
}
public double setValue(double value){
return value;
}
public boolean IsOrNotProtect(boolean protect){
return protect;
}
}
public class TestInterface{
public static void main(String[] args){
GoldenMonkey gm=new GoldenMonkey();
gm.sleep();
gm.talk();
}
}这样就可以了。把interface 前面的public 去掉就OK了。
一个java文件中只能有一个pulbic的类