C# - É uma linguagem puramente Orientada a Objetos ?


Hoje vamos tratar de um assunto delicado.

Seria a linguagem C# uma linguagem puramente orientada a objetos ?


A resposta a essa pergunta pode ter diferentes aspectos e interpretações dependendo do que é considerado uma linguagem orientada a objetos pura.

Vamos definir primeiro quais as caracteristicas e recursos uma linguagem orientada a objetos pura deve ter.

Assim uma linguagem orientada a objetos deve satisfazer as seguintes qualidades:

  1. Encapsulamento/Ocultamento da informação
  2. Herança
  3. Polimorfismo
  4. Todo os tipos pré-definidos são objetos
  5. Todas as operações realizadas enviam mensagens a objetos
  6. Todos os tipos definidos pelo usuários são objetos

Uma linguagem com suporte parcial a esses recursos pode ser considerada uma linguagem híbrida.

Vamos fazer uma comparação desses requisitos entre as linguagems C#, Java, Ruby, Smalltalk Python, C++ e Visual Basic.

Na tabela a seguir temos :

  Smalltalk Ruby Java C# C++ Python Visual Basic
Ensapsulamento Sim Sim Sim Sim Sim Não Sim?
Herança Sim Sim Sim Sim Sim Sim Não
Polimorfismo Sim Sim Sim Sim Sim Sim Sim(delegação)
Todos os tipos pré-definidos são objetos Sim Sim Não Não Não Sim Não
Todas as operações enviam mensagens a objetos Sim Sim Não Não Não Não Não
Todos os tipos definidos pelo usuário são objetos Sim Sim Sim Sim Não Sim Não

Como podemos conferir, somente as linguagens Smalltalk e Ruby são puramente orientada a objetos, as demais linguagens incluindo a linguagem C#, são linguagens híbridas.

A linguagem C# embora dê total suporte a orientação a objetos pois contém os recursos fundamentais da orientação a objeto como :  Encapsulamento, herança, polimorfisto e abstração, não atende todos os requisitos de uma linguagem puramente OOP.

Além disso, a herança não é puramente suportada pela linguagem C# pois ela não dá suporte a herança múltipla. Java também é uma linguagem híbrida visto que os tipos básicos não são objetos. Visual Basic é uma linguagem procedural.

Conclusão:  A linguagem C# não é puramente orientada a objetos.

E estamos conversados...

"Meus filhinhos, estas coisas vos escrevo, para que não pequeis; e, se alguém pecar, temos um Advogado para com o Pai, Jesus Cristo, o justo."
1 João 2:1

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti