Captain Marvel (1941-53) was DC Comics' attempt to circumvent the obvious homoeroticism in the 1940s superhero-teen sidekick relationship by making the two the same person. 14-year old Billy Batson transforms into adult superhero Captain Marvel when he says the magical word Shazam.
Which, by the way, is an acronym for the magical beings who bestowed the power upon him: Solomon, Hercules, Atlas, Zeus, Achilles, Mercury.
It's all very silly, and it provides a new problem: how to give Captain Marvel a girlfriend, when he's really a teenage boy with muscles? He can't very well be dating Lois Lane.
The 2019 movie has Billy (Asher Angel) turning into an unnamed superhero (played by Zachary Levi). But it also gives Billy a sidekick of his own, Freddy (Jack Dylan Grazer).
And, in the absence of a girlfriend, they have a gay-subtext romance.
Plus one of his foster-home buddies, Pedro (Jovan Armand) appears to identify as gay when they hide out in a strip club and he says "not my thing."
The result is a pleasantly non-heterosexist superhero movie, which also has a surprising number of hunkoids in the cast.
1. Adam Brody, Freddy's adult superhero alter-ego (left).
2. Zachary Levi.
3. All of the other residents of Billy's foster home morph into superheroes. Eugene (Ian Chen) into Ross Butler
4. Pedro (Jovand Armand) into D. J. Cotrona
5. Instead of a whole fraternity of immortals from the Bible and Greek and Roman mythology, Shazam is a single person, played by Djimon Hounsou.
6. Cooper Andrews as the beefy foster father to the superheroic crew.
7 Mark Strong plays the Big Bad, Dr. Silvana, who unleashes the Seven Deadly Sins (Sloth, Lust, Envy, and so on) onto the world. What's with all the villains with Ph.D.s? Part of the culture of anti-intellectualism?
8. The teen idol set is already familiar with Asher Angel.
9. Evan Marsh as the main bully who is terrorizing Freddy.
10. Landon Doak as the bullying brother who terrorizes a teenage Dr. Silvana.