A classic hero also requires a clear code: to boldly stand FOR something, which requires clearly and simultaneously standing AGAINST its opposite.
Where as:
An anti-hero is a compromised hero.
Kownacki discusses the popularity of the anti-hero (The Watchmen), the way that the anti-hero is sometimes cast as a hero (Wolverine) and where the hero masquerades as an anti-hero (The Rock).