OOP - Herança
Fundamental para Java e linguagens Orientadas a Objetos é o conceito de herança. Por meio da herança o código definido em uma classe pode ser reutilizado em outras classes.
Definição de Classes pode ser encontrada aqui.
A reutilização de códigos foi um dos grandes avanços que a programação obteve em sua história, evitando redundâncias desnecessárias e contribuindo para o surgimento e amadurecimento de pacotes e APIs que tratam problemas específicos. A comunidade Open Source é um bom exemplo, onde códigos são desenvolvidos e compartilhados a todo instante. Um programador Javeiro importa (import) classes e codifica novas funcionalidades estendendo (extends) classes o tempo inteiro, tudo graças ao conceito de reutilização de códigos.
Uma breve olhada na história, vamos descobrir que a programação começou com programas monolíticos. Um bloco de instruções único que com o passar do tempo ficou inviável de manter. Sendo assim o surgimento de funções, uma separação em arquivos menores (blocos de códigos). Onde cada arquivo detinha uma função específica, com o objetivo de proporcionar ordem e assim facilitar a sua manutenção.
Em Java você pode definir uma superclasse geral (mais abstract), e depois estendê-las com subclasses mais específicas. A superclasse não sabe nada sobre as classes que herdam dela, mas todas as subclasses que herdam da superclasse precisam declarar explicitamente a relação de herança. Uma subclasses que herda de uma superclasse recebe automaticamente as variáveis de instâncias acessíveis e os métodos definidos pela superclasse, mas é também livre para substituir métodos da superclasse para definir comportamentos mais específicos.
Definição de Classes pode ser encontrada aqui.
A reutilização de códigos foi um dos grandes avanços que a programação obteve em sua história, evitando redundâncias desnecessárias e contribuindo para o surgimento e amadurecimento de pacotes e APIs que tratam problemas específicos. A comunidade Open Source é um bom exemplo, onde códigos são desenvolvidos e compartilhados a todo instante. Um programador Javeiro importa (import) classes e codifica novas funcionalidades estendendo (extends) classes o tempo inteiro, tudo graças ao conceito de reutilização de códigos.
Uma breve olhada na história, vamos descobrir que a programação começou com programas monolíticos. Um bloco de instruções único que com o passar do tempo ficou inviável de manter. Sendo assim o surgimento de funções, uma separação em arquivos menores (blocos de códigos). Onde cada arquivo detinha uma função específica, com o objetivo de proporcionar ordem e assim facilitar a sua manutenção.
Em Java você pode definir uma superclasse geral (mais abstract), e depois estendê-las com subclasses mais específicas. A superclasse não sabe nada sobre as classes que herdam dela, mas todas as subclasses que herdam da superclasse precisam declarar explicitamente a relação de herança. Uma subclasses que herda de uma superclasse recebe automaticamente as variáveis de instâncias acessíveis e os métodos definidos pela superclasse, mas é também livre para substituir métodos da superclasse para definir comportamentos mais específicos.