Até onde eu sei, a terminologia vem de como a hierarquia de herança é tradicionalmente exibida, com os tipos de extensão na parte inferior e os tipos de pai na parte superior.
Isso é um pouco inútil, a menos que você queira ligar para a esquerda e a direita .
Não estou procurando opiniões por que a terminologia é como é, mas elas são mais que bem-vindas como comentários. Eu estou procurando referências sobre quem apresentou e baixou pela primeira vez e por que eles escolheram esse nome .
terminology
history
inheritance
Steven Jeuris
fonte
fonte
Respostas:
Basicamente, o
down-
eup-cast
é a continuação lógica dosubtype
(subclass
em OOP) esupertype
(superclass
respectivamente), por exemplo, a representação clássica do tipo derivado a ser localizado abaixo do tipo-sub
tipo original.Se procurarmos pelo termo
subtyping
, encontraremos o seguinte ( Wikipedia ):Então, como muitas outras coisas, ele se originou em algo vagamente chamado aqui como "derivados do Simula" (provavelmente as primeiras linguagens OOP). Simula, no entanto, já possui a noção de subclasse , mas não apresenta todas as propriedades do OOP.
fonte
A referência mais antiga que encontrei ainda é de setembro de 1990, em um post da Usenet .
A biblioteca referenciada é o NIHCL ( disponível no Software Preservation Group ), que contém este código (
MI
é "herança múltipla"):O livro em que esse código foi incluído ( Abstração de Dados e Programação Orientada a Objetos em C ++ ) também usa o termo "castdown".
O termo "castdown" também parece anteceder "downcast" , pelo menos na Usenet.
fonte