Shazam! spoilers ahead. In the world of this DCEU movie, Shazam is not the only superhero. Teenager Billy Batson (Asher Angel), who becomes Shazam (Zachary Levi), knows about other heroes like Superman and Batman, and superheroes are just accepted as a part of everyday life. So, when the Superman cameo happens in Shazam!, it's not totally out of left field, but it might leave fans wanting more when it comes to how these two heroes (and, well, all the other DC heroes) coexist.
Superman is mentioned early on in the movie when Billy meets his foster brother, Freddy Freeman (Jack Dylan Grazer). Freddy is a huge superhero fan, who has collected newspapers about Superman and Batman. He also owns a bent up bullet that he says bounced off Superman's body and a batarang, which comes into play later in the film. Basically, it's clear that these heroes exist, but none of the main characters know them personally.
But, when Billy becomes Shazam, he also becomes a local hero in Philadelphia and, apparently, gets a good amount of clout in the superhero world, because he's able to bring Superman as a surprise guest to his school. At the very end of the movie, Billy (in his adult, Shazam form) shows up to lunch at the school he and his foster siblings attend and says he has a friend with him. And what do ya know, out walks Superman. We don't see Superman's face, which makes the appearance more of a sight gag. The audience can only see his costumed form, and then the movie ends. But there's also a logistical, behind-the-scenes reason for this.
In September, The Hollywood Reporter cited anonymous sources asserting that Henry Cavill may no longer be playing Superman in the DC Extended Universe going forward. The report specifically mentioned a potential Shazam! cameo that had been scrapped. "Warner had been trying to enlist Cavill, who most recently co-starred in Mission: Impossible — Fallout, for a Superman cameo in Shazam!, which stars Zachary Levi and will bow April 5," THR wrote. "But contract talks between Cavill's WME reps and the studio broke down, and the door is now closing on other potential Superman appearances."
In response, Warner Bros. released this statement: "We have a great relationship and great respect for Henry Cavill that continues to remain unchanged. Additionally we have made no current decisions regarding any upcoming Superman films."
As for Cavill, he released a video on his Instagram:
Cinema Blend reported back in September that reporter Umberto Gonzalez from The Wrap wrote an Instagram post describing the planned appearance. Per Gonzalez, Cavill's cameo reportedly would have been him showing up at the end of the movie as Clark Kent and saying something to Billy (in his kid form) along the lines of, "Hey, we're gonna keep an eye on you."
In actuality, the Superman cameo did still happen with someone in that suit, but the hero doesn't have any lines, and it's pretty clearly not Cavill.
It's unclear what, if anything, this means for the future when it comes to who will play Superman. It could be as simple as the Shazam! cameo deal and timing just not working out for Cavill, but the actor continuing to play the role in other films. Or, Cavill could be out as Superman altogether. For now, there are no Superman-specific movies officially in the works, so fans might not be getting an answer anytime soon.