0

Say we have a class "Felidae", and a class that extends it, "Felis".

Felis is an extension of Felidae, but what is Felidae? Is it the inheritor (or inheriter) for Felis, in common terminology?

Given I'm not sure that inheritor is the accepted term, I want to ask, if there is any formal, or at least, very common term for the opposite of an extending-class, and what is it (maybe it's indeed inheritor)?

Appendix

One of the reasons I ask this is because in Hebrew for example, "morish" (מוריש) is the noun for someone that inherits something to someone (the verb is also called "morish"), to the heir (yoresh) or heirs (yorshim). Thus:

Ha (the) morish, morish, la (to) yoresh O' (or) yorshim.

When I looked in an online English-Hebrew dictionary (morfix) for morish, I found nothing, hence the association to my question above.

4
  • 1
    Have you thought about using the Parent-Child analogy to describe it? So Felis is the parent of Felidae. Commented Dec 19, 2017 at 15:04
  • 3
    Inheritance here is more akin to the genetic material you inherited from your parent than material possessions. Commented Dec 19, 2017 at 15:07
  • 1
    @DFord I hate it when people talk about "parent classes" and "child classes", because it confuses the biological meaning of "inheritance" with the OO-programming meaning, which is quite a different thing ("inheritance" means "specialization" in OO-programming - and a child is not a special version of a parent!). Commented Dec 20, 2017 at 12:34
  • @Jesper I see what your saying but at the same time, a child will inherit traits from their parents, similar how a subclass can inherit members from the base class. Commented Dec 20, 2017 at 15:52

1 Answer 1

8

In the context of OOP, it is best to talk about base classes and subclasses or derived classes. And to some degree, talking about a parent class and child classes is helpful. But any other terminology will result in confusion.

English does have words for the receiver of an inheritance: heir or beneficiary, depending on whether there was a will. The person who wrote the will could be called the testator or bequeather, but these legal terms are not useful in the context of software engineering.

3
  • 2
    Parent-child is not the best terminology for class inheritance, as it can conflict with labels for ownership relationships, but it is commonly used in languages like PHP. Superclass and subclass, or base class and subclass, are less ambiguous. Commented Dec 19, 2017 at 21:30
  • Superclass and subclass are also analogies of superset and subset (in mathematical set theory). Commented Dec 19, 2017 at 22:28
  • 1
    @rwong But depending on how you look at it, that's likely a misleading analogy: the base class contains a subset of the derived class'es interface and properties – the sup/sub relationship is inverted. With LSP-compatible inheritance, the interface of subtypes becomes more general. So I think base/derived is the clearest terminology because it carries the fewest connotations. Commented Dec 19, 2017 at 22:37

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.