Hi damu,
I mean why a abstract method can be used, it is not be implement.
As FileChannel is a class, you probably wonder how such an abstract class can be used as it is not implemented.
You may see an abstract class a bit like an interface which could be implemented partially. That's the case for FileChannel.
As an abstract class is - at best - partially implemented (or not at all like an interface), you cannot instantiate such a class. But you can instantiate a fully implemented class which would extend the abstract class.
So, as far as FileChannel is concerned, you cannot instantiate it yourself. But by calling the FileChannel getChannel() method of RandomAccessFile (or of FileInputStream, or FileOutputStream), you get a valid FileChannel instance which in fact is an instance of a class extending FileChannel and which is not abstract.
Best,
Phil.