When you create a method with the modifier "final" you are modifying that method so that it cannot be overridden or hidden.
So if you were for some reason to create another class that were to extend your class X (which is known as inheritance), you would not be allowed to modify, or override your show() method. Furthermore, any other class would be able to access that method.
If you want a more in depth explanation, I suggest reading the Java API: https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html