In the outer solar system, the equilibrium temperatures are low that small bodies should be rocky/icy, made up of rocky cores covered with ice.

Then Voyager 1 (1979) took the first detailed images of Io. Wow!

And here is the latest image from Galileo
This ain't no ice ball!

Voyager found a very young surface, with active, ongoing volcanic eruptions:

Note: Io volcanos are more like Earth's geysers than like Earth's volcanos. Tvashat Catena (from Galileo)


Io is hot. Why? Tidal effects

Remember how tides work:

Now, compare the tidal force Jupiter exerts on Io to the tidal force the Earth exerts on the Moon:

Big tidal force! But the presence of a tidal force by itself won't act to heat Io. Why not?

We need another factor: Orbital resonances.

Io, Europa, and Ganymede live in a 1:2:4 orbital resonance:

So Io is constantly being pulled out of its locked orbit into an eccentric orbit. Jupiter, Europa, and Ganymede are playing tug-of-war with Io. As a result, Io lives on a slightly eccentric orbit, sometimes a bit closer to Jupiter, sometimes a bit farther.

The tidal force from Jupiter changes with distance, so Io is constantly being ``stretched and squeezed'' by Jupiter -- the tidal bulges change elevation due to the changing tidal force. Result of this flexing: heat!

This was actually predicted by Peale etal (1979) just a few days before Voyager flyby:

" might speculate that widespread and recurrent surface volcanism would occur... Consequences of a largely molten interior may be evident in pictures of Io's surface returned by Voyager 1."