Your comment is not exactly right. Virtual memory is abstraction of contiguous memory which is physically not contiguous in memory, may be in different pages in memory. Also overlays has some overhead on the programmer. In case of virtual memory, programmer need not to bother.