I have the following code:
import com.apple.dnssd.*;
public interface IServiceAnnouncer {
public void registerService();
public void unregisterService();
public boolean isRegistered();
}
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
This code is saved in a file called "HelloWorld.java". The Java compiler complains about this code. It writes that the class IServiceAnnouncer
is public and it should be declared in a file called "IServiceAnnouncer.java".
I have several questions about this:
Why would the compiler say that
IServiceAnnouncer
is a class? It's an interface. Or interface is a partial case of a class?If I put the interface
IServiceAnnouncer
in a separate file called "IServiceAnnouncer.java" (as the compiler wants), how then can I use it from the "HelloWorld.java"?What does
public interface
mean? What is the difference between a public interface and non-public one?