There are a number of different ways you can implement a default route in IOS. The method you choose depends on the circumstances (routing protocol used, equipment being configured, etc.) and your design goals (such as static vs. dynamic routing.)
The ip default-gateway command only works on a device not running IP routing. The most common uses of this command are L2 switches and access points, although it could theoretically be used on something like a voice gateway with only one connection, and the no ip routing command configured. Frankly, I cannot think of any advantage or doing this over a static route.
IP default-network can be used to insert a default route into the routing table without the underlying routing protocol supporting the origination of a default route. The most common use would be with EIGRP, although a summary route is probably the best way to advertise default routes with EIGRP. The default network would be configured as a classful network, probably part of the network core or edge block, that would have a valid default route.
ip route 0.0.0.0 0.0.0.0 [Next Hop] [exit interface] [administrative distance]
This is the most common configuration for non-dynamic default routes. It is completely compatible with IP routing and dynamic routing protocols. When the default route is out a serial interface, point-to-point frame relay DLCI, or point to point option, only the outgoing interface needs to be configured. This can be done with an Ethernet interface, but can result in a couple of undesirable outcomes: A – the route does not work at all, or B – The next hop uses proxy arp, so the route works, but there is an ARP mapping for every single destination that is routed to (or the APR table fills and starts flushing). For Ethernet interface, you can specify both the IP next hop and the egress interface, or just the egress interface. Specifying both eliminates the recursive lookup for the outgoing interface, although that is probably not much of a savings in resources.If an administrative distance higher than your dynamic protocol is configured, the router can prefer a dynamic route, and fall back to the static route if the dynamic route is lost.
Several routing protocols, including RIPv2, OSPF, and BGP allow for the origination of a default route via the default-information originate command. This checks for the default route in the routing table before originating it, however, the OSPF version of the command allows for the always keyword, which forces the router to always advertise a default route, whether there is a default route in the routing table or not.
ip summary-address eigrp <AS> 0.0.0.0 0.0.0.0
EIGRP does not include the default-information originate command, but can advertise a default route from a specific interface or interface by applying the ip summary-address eigrp <AS> 0.0.0.0 0.0.0.0 command at the outgoing interface level.
A default static (or dynamic) route can be redistributed with most routing protocols. This can be problematic if there are routes that should not be advertised. Route-maps can be used to limit this, but other methods should generally be preferred.