They can't be private...what's the point of a private interface method? It can't be called by anything.
It can't be protected for a similar reason. Interfaces are simply for exposing public functionality to other classes. If you want protected status, then create a new class and inherit the methods, because protected restricts access to the class tree I guess you have to stand back and look at what the "Interface" design is for. It is to allow objects that possibly come from different packages and even vendors (this is the basis for J2EE design and implementation) to interoperate with a known reference point.
If you need to hide methods between your own modules (which this appears, to me, to be your problem) then you should be able to accomplish it with an Abstract Class and get around your issues? Of course, you can also use the default (no) access modifier to allow only package classes and subclasses to call the methods of an interface.
public
there is one method only. go to command prompt and type this to know the methods. D:\java>javap java.awt.event.ActionListener Compiled from "ActionListener.java" public interface java.awt.event.ActionListener extends java.util.EventListener{ public abstract void actionPerformed(java.awt.event.ActionEvent); }
This is not necessarily true. The only rules for this are that interface methods may not be private. They may be public, protected, or have the default (blank) access modifier.
Constants and abstract methods. That's it.
You cannot. An Interface can be only public or abstract. A final keyword indicates - the methods cannot be overridden whereas in an interface you expect the implementing class to write all the methods. So logically it shouldn't be possible which Java does. When you compile a interface with final keyword - the compiler wont let you compile.
public
interface is a list of methods which implements that interface
there is one method only. go to command prompt and type this to know the methods. D:\java>javap java.awt.event.ActionListener Compiled from "ActionListener.java" public interface java.awt.event.ActionListener extends java.util.EventListener{ public abstract void actionPerformed(java.awt.event.ActionEvent); }
A tagging interface type in Java is an interface that has not defined methods such as the java.io.Serializable interface.
Interface is collection of abstract methods which has only declaration and no implementation
This is not necessarily true. The only rules for this are that interface methods may not be private. They may be public, protected, or have the default (blank) access modifier.
An interface in Java is like an abstract class, but there are no method bodies allowed in it and it has to be declared with the interface keyword. It is Java's way of getting around the Deadly Diamond of Death. Only abstract methods and constants are allowed in it.
Constants and abstract methods. That's it.
interface Shape { public double getArea(); }
You cannot. An Interface can be only public or abstract. A final keyword indicates - the methods cannot be overridden whereas in an interface you expect the implementing class to write all the methods. So logically it shouldn't be possible which Java does. When you compile a interface with final keyword - the compiler wont let you compile.
Implements denotes defining an implementation for the methods of an interface. However interfaces have no implementation so that's not possible. An interface can however extend another interface, which means it can add more methods and inherit its type.
An interface can only have abstract methods or constants in it. A class can have both that and everything else in Java.