Programming with ObjectsThe Benefits of OOPWhen OOP Breaks DownUnderstanding System.ObjectCommon MethodsToStringGetHashCodeEqualsGetTypeObject EqualityGenerated EqualityUnderstanding ClassesExplicit ConstructionImplicit Class ConstructionGeneric ClassesThe Self-IdentifierMethods and PropertiesPropertiesSetting Properties in the ConstructorMethodsStatic Methods, Properties, and FieldsStatic fieldsMethod OverloadingAccessibility ModifiersAccessibility modifiers on module valuesF# signature filesInheritanceMethod OverridingCategories of ClassesAbstract classesSealed classesCastingStatic upcastDynamic castPattern matching against types