=== 2.2.6.1 Remote Classes and Remote Interfaces === A class is remote if it or any of its superclasses implements a remote interface. A remote interface is an interface which satisfies the following requirements: *The interface name is ****java.rmi.Remote**** or the interface extends, directly or indirectly, the interface ****java.rmi.Remote****. *Each method declaration in the remote interface or its super-interfaces includes the exception ****java.rmi.Remote****Exception (or one of its superclasses) in its **throws** clause. *In a remote method declaration, if a remote object is declared as a return type, it is declared as the remote interface, not the implementation class of that interface. In addition, Java Card RMI imposes additional constraints on the definition of remote methods. These constraints are as a result of the Java Card platform language subset and other feature limitations. For more information, see [[2.2.6.2_Access Control of Remote Interfaces| Section 2.2.6.2, Access Control of Remote Interfaces]] and [[2.2.6.3_Parameters and Return Values| Section 2.2.6.3, Parameters and Return Values]].