You should create thread object with
th := TURLDownload.Create('jgvjk', 'ngkj', 'jkgfjk');
Another issues:
In your thread body you call VCL window using showmessage('Reached');
without synchronization.
You should not work with VCL staff without some kind of synchronization - use Synchronize or Queue.
reintroduce
is not needed for non-virtual constructor
inherited
does nothing in Execute