Não esquece de ler os comentários do kht e meu: https://www.tabnews.com.br/Araujo/conteudo-programacao-orientado-a-objetos-javascript (também: https://www.tabnews.com.br/kht/2b3c6beb-bae5-4c2a-b7d7-3a8e90ceb0e6). Então há controvérsias sosbre esses pilares e outros. Veja também: https://pt.stackoverflow.com/q/215679/101. Eu discuto muito isso no SOpt, e ainda não tenho conclusão definitiva sobre isso, posso até discordar o que eu escrevi.
SOLID é até uma forma que consertar OOP, assim como os design patterns que ficaram famosos por fazer o mesmo. E as pessoas nem sabem o que são DP porque só aprenderam os famosos.
O new
pode mudar sua definição em Java nas próximas atualiação (estão prometendo desde a versão 10), assim como em C# não é isso. Tem linguagem que ele é só um alocador de memória.
Não me parece que essa definição de abstração esteja tão correta. https://pt.stackoverflow.com/q/360556/101.
Embora tenha definições diferentes, encapsulamento costuma ser colocar tudo dentro de uma cápsula. Veja em https://pt.stackoverflow.com/q/240186/101. A definição apresentada acima costuma ser chamada de information hiding. Mas é aquela coisa, depende de escola.
Quase 100% das pessoas usam getters/setters errado, é tão prevalente que meio que "virou o certo". Eu nem sou tão contra, mas as pesoas glorificam algo que elas não querem seguir, querem fazer diferente, mas usar o nome porque assim ela passa estar na moda.
O fato do artigo estar capado aqui dá ideia bem errada. O fato de não ter esse e talvez outros comentários no original vai fazer muita gente aprender e/ou perpetuar os erros. Que é o que eu sempre falo do ciclo:
|-> aprende errado -> treina o erro -> executa o erro -> ensina o erro ->|
|----------------------<----------------------------<------------------------<-|
Vamos ver o que vem do resto, eu vou comentando conforme for precisando.
Pode ajudar:
- https://pt.stackoverflow.com/q/88546/101
- https://pt.stackoverflow.com/q/579804/101
- https://pt.stackoverflow.com/q/205482/101
- https://pt.stackoverflow.com/q/100812/101
- https://pt.stackoverflow.com/q/212300/101
- https://pt.stackoverflow.com/q/269089/101
Observou? Faz sentido para você?
Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).