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 classesjava.rmi.server.RemoteObject
andjava.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 classBankAcctImpl
implements theBankAccount
remote interface and extends thejava.rmi.server.UnicastRemoteObject
class:
package mypackage; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class BankAccountImpl extends UnicastRemoteObject implements BankAccount { private float balance = 0.0; public BankAccountImpl(float initialBalance) throws RemoteException { balance = initialBalance; } public void deposit(float amount) throws RemoteException { ... } public void withdraw(float amount) throws OverdrawnException, RemoteException { ... } public float getBalance() throws RemoteException { ... } }Note that if necessary, a class that implements a remote interface can extend some other class besidesjava.rmi.server.UnicastRemoteObject
. However, the implementation class must then assume the responsibility for exporting the object (taken care of by theUnicastRemoteObject
constructor) and for implementing (if needed) the correct remote semantics of thehashCode
,equals
, andtoString
methods inherited from thejava.lang.Object
class.
CONTENTS | PREV | NEXT
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.