Extension Methods are unable to provide Properties, leaving abstract classes as the only way to provide default behavior for a property.
Abstract classes allow or enforce, through use of abstract and virtual keywords, the overriding of default behavior. Such enforcement is not provided by Extension Methods.
Edit: Down vote with no comment. What's wrong with this post? If it's wrong in any way, I'd like to know.