Chapter 9. Inheritance
WHAT'S IN THIS CHAPTER?
Understanding inheritance in F#
Understanding field and constructor invocation
Using casts
Defining and using interfaces
Applying object expressions
Within the object-oriented parlance, inheritance is frequently used to mean implementation inheritance, where a given type can express a relationship to another type, effectively importing all the data and behavior of that parent type. Originally thought (in Smalltalk and C++) to be a staple of the object-oriented design process, then later criticized and revamped to split into implementation and interface inheritance in languages such as Java and C#, inheritance nonetheless represents a powerful and useful technique for not only expressing relationships between types, but also in ensuring that behavior relating to a group of types remains defined in precisely one place. As a full-fledged member of the object-oriented family of languages, F# offers full support for inheritance between types, with the additional "twists" that come with a new language.
BASICS
Assume that there is a base type defined in F# (or, if wanted, in another .NET language), something along the lines of:
[<Class>] type Person(fn, ln, a) = member p.FirstName = fn member p.LastName = ln member p.Age = a
We can define a new type that inherits from this base type by referencing it in the opening lines of the derived type definition: ...
Get Professional F# 2.0 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.