Formation F#
  • Intro
  • Bases
    • Le F♯, c'est quoi ?
    • Syntaxe
    • Premiers concepts
    • 🍔 Quiz
  • Fonctions
    • Signature
    • Fonctions
    • Fonctions standard
    • Opérateurs
    • Fonctions : compléments
    • 🍔 Quiz
    • 📜 Récap’
  • Types composites
    • Généralités
    • Tuples
    • Records
    • Unions
    • Enums
    • Records anonymes
    • Types valeur
    • 🍔 Quiz
  • Types : Compléments
    • Type unit
    • Génériques
    • Types flexibles
    • Unités de mesure
    • Conversion
    • Exceptions F#
  • Pattern matching
    • Patterns
    • Match expression
    • 🚀 Active Patterns
    • 📜 Récap’
  • Collections
    • Vue d'ensemble
    • Types
    • Fonctions génériques
    • Fonctions spécifiques
    • 🍔 Quiz
    • 📜 Récap’
  • Programmation asynchrone
    • Workflow asynchrone
    • Interop avec la TPL .NET
    • 📜 Récap’
  • Types monadiques
    • Type Option
    • Type Result
    • Smart constructor
    • 🚀 Computation expression (CE)
    • 🚀 CE - Fondements théoriques
    • 📜 Récap’
  • Module & namespace
    • Vue d'ensemble
    • Namespace
    • Module
    • 🍔 Quiz
    • 📜 Récap’
  • Orienté-objet
    • Introduction
    • Membres
    • Extensions de type
    • Classe, structure
    • Interface
    • Expression objet
    • Recommandations
  • 🦚 Aller plus loin
Propulsé par GitBook
Sur cette page

Cet article vous a-t-il été utile ?

Modifier sur GitHub
  1. Orienté-objet

Introduction

Orienté-objet, polymorphisme

En F♯, l'orienté-objet est parfois + pratique que style fonctionnel.

Briques permettant l'orienté-objet en F♯ :

  1. Membres

    • Méthodes, propriétés, opérateurs

    • Consistent à attacher des fonctionnalités directement dans le type

    • Permettent d'encapsuler l'état (en particulier mutable) de l'objet

    • S'utilisent avec la notation "pointée" my-object.my-member

  2. Interfaces et classes

    • Supports de l'abstraction par héritage

Polymorphisme

4e pilier de l'orienté-objet

En fait, il existe plusieurs polymorphismes. Les principaux :

  1. Par sous-typage : celui évoqué classiquement avec l'orienté-objet

    • Type de base définissant membres abstraits ou virtuels

    • Sous-types en héritant et implémentant ces membres

  2. Ad hoc/overloading → surcharge de membres de même nom

  3. Paramétrique → génériques en C♯, Java, TypeScript

  4. Structurel/duck-typing → SRTP en F♯, typage structurel en TypeScript

  5. Higher-kinded → classes de type en Haskell

Précédent📜 Récap’SuivantMembres

Dernière mise à jour il y a 3 ans

Cet article vous a-t-il été utile ?