Sei que a ideia do post é ser um guia básico, mas de qualquer forma é uma ótima oportunidade pra esclarecer novamente uma coisa muito importante:
Não existe uma definição única, canônica e universal sobre Orientação a Objetos. A definição dada acima é uma das existentes, mas na realidade o buraco é mais embaixo.
Já respondi sobre isso aqui, e sugiro ler e seguir todos os links do texto para se aprofundar no tema (tem inclusive posts do próprio Alan Kay, que são esclarecedores).
Mas só pra resumir:
Existem várias vertentes (ou "escolas", se preferir) de Orientação a Objetos, e a mencionada no texto é apenas uma delas - provavelmente a mais popular, e talvez por isso muita gente acredita que é a única.
Alan Kay cunhou o termo "Orientação a Objetos", mas a definição dele é diferente da que está no texto. Ele definiu, entre outras coisas, que "tudo é um objeto" (o que excluiria Java como linguagem orientada a objeto, só pra ficar em um exemplo), e que eles se comunicam via troca de mensagens.
Ou seja, nada de herança e polimorfismo. Essas características se aproximam muito mais da definição de Bjarne Stroustrup, que basicamente pegou o mesmo termo e "ressignificou".
Isso não quer dizer que o post está errado. Mas é importante mencionar que orientação a objetos é bem mais complexo que isso, e mesmo a sua definição exata é controversa.
Inclusive ele diz que Lisp é mais orientada a objeto que Smalltalk. Porque a estrutura de Smalltalk não é composta de objetos, apenas os dados. É muito mais complexo do que as pessoas aprendem e principalmente porque misturam escolas.