CONTENTS | PREV | NEXT | Java Remote Method Invocation |
The general rules for a class that implements a remote interface are as follows:
- The class usually extends java.rmi.server.UnicastRemoteObject, thereby inheriting the remote behavior provided by the classes java.rmi.server.RemoteObject and java.rmi.server.RemoteServer.
- The class can implement any number of remote interfaces.
- The class can extend another remote implementation class.
- The class can define methods that do not appear in the remote interface, but those methods can only be used locally and are not available remotely.
For example, the following code fragment defines the BankAcctImpl class, which implements the BankAccount remote interface and which extends the java.rmi.server.UnicastRemoteObject class:
package my_package; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class BankAccountImpl extends UnicastRemoteObject implements BankAccount { public void deposit (float amount) throws RemoteException { ... } public void withdraw (float amount) throws OverdrawnException, RemoteException { ... } public float balance() throws RemoteException { ... } }
Note that if necessary, a class that implements a remote interface can extend some other class besides java.rmi.server.UnicastRemoteObject. However, the implementation class must then assume the responsibility for the correct remote semantics of thehashCode
,equals
, andtoString
methods inherited from the Object class.