Keywords for properties and methods on C#

Em linguagens orientadas a objeto temos meios de definir o acesso e uso dos elementos. Segue uma lista de algumas dessas palavras e sua funcionalidade.

  • public: declara que uma propriedade/método possa ser acessado externamente, ou seja, é visível fora do objeto.
  • private: oposto do public, toda propriedade/método só pode ser acessada internamente da classe.
  • protected: semelhante ao private, ou seja, não é visível fora do objeto, mas é compartilhado entre seus derivados transmida hierarquicamente.
  • static: um método/propriedade estática são elementos da classe em si, ou seja, não independem de sua implementação, são compartilhadas por todas e não podem ser alteradas. Em geral são constantes ou métodos que não dependem de parâmetros da classe.

Algumas outras keywords frequentemente usadas:

  • virtual: um método virtual é um método que pode ser sobreposto (override); ou seja, um método non-override não poderá ser sobreposto. Uma forma de lidar com isso seria usar a keyword new method, escondendo o método base na derivada. Por default, no Java todos os métodos são virtuais e, portanto, podem ser sobrepostos. Obs: não aplicável a métodos abstratos e estáticos.
  • override: declara que um método esta sobrepondo um método base – aspecto do polimorfismo – “one interface, multiple methods” (uma interface, múltiplos métodos).
  • abstract: declara uma classe semi-implementada, ou seja, possui método que não puderam ser implementadas genericamente, e portanto, devem ser implementadas por seus derivados.
  • interface: define uma assinatura para um tipo de dado (data type). É uma forma de dizer que todo tipo que implementa uma dada interface terá certos elementos, sempre! É muito semelhante a abstract, a diferença é que num algumas implementações já estão feitas. Outro detalhe relevante é que na herança uma classe pode apenas derivar de uma única classe base mas pode implementar quantas interfaces desejar. Todos os métodos de uma interface são públicos, um tanto óbvio.
  • sealed: impede que uma classe seja herdada. Semelhante ao final no Java.
This entry was posted in C#, oop. Bookmark the permalink.

One Response to Keywords for properties and methods on C#

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>