Files
saselang-bible/chapters/008-classes-et-object.md
2026-09-12 08:56:27 +02:00

1.7 KiB

8. Classes et Object

8.1 Héritage de base — V1 REQUIS — FIGÉ

Toutes les classes héritent implicitement de Object, sauf Object lui-même.

Les primitives, structs, enums, tuples et unions n'héritent pas artificiellement de Object.

8.2 Héritage de classes — V1 REQUIS — FIGÉ

Héritage de classe unique uniquement.

Une classe concrète doit être explicitement :

open
ou
final

Une classe abstraite est :

abstract

abstract, open et final sont mutuellement exclusifs au niveau classe.

8.3 Receivers — V1 REQUIS — FIGÉ

this     instance courante
super    instance de la classe parente immédiate
cls      classe courante dans une clsmethod
parent   classe parente immédiate dans une clsmethod

Pas de :

super::super
parent::parent

8.4 Accès membre — V1 REQUIS — FIGÉ

Les membres sont accédés explicitement avec :: :

this::field
token::kind()
Type::member
super::method()

. qualifie les namespaces/modules/types ; :: accède à un symbole contenu.

Ils relèvent de la grammaire et ne sont pas surchargeables.

8.5 Identité d'instance — V1 REQUIS — FIGÉ

Object fournit une opération intrinsèque non overridable :

Object::sameInstance(Object other) -> bool

Elle teste l'identité d'instance, c'est-à-dire si deux références désignent exactement le même objet.

Elle n'est pas équivalente à ==.

Exemple : deux objets différents peuvent être logiquement égaux mais ne pas être la même instance.

Object n'implémente pas automatiquement OpEqual ni OpPartialEqual.

Les classes ne reçoivent donc aucune égalité de valeur automatique.