C and C++ may have additional uses as machine/assembly level programming languages that Java does not intend to be.
Java surpasses C and C++ in its capability and ease to build desktop, webbased and mobile applications. Someone who knows Java does not have to go back to C or C++ because Java is a more refined language. (Expertise in C or C++ would be required in tasks that requires programming...