2 – Herança – P.O.O.

Herança – Paradigmas de Programação

Introdução

Ola!

Neste documento temos a continuação sobre POO abordada no artigo anterior falando sobre Classes. Link para quem não acompanhou: Classes.

Ainda seguindo um modelo de explicação simplificado, trarei somente o conteúdo sobre Objetos ao fim de apresentar os conceitos ligados a Classes. Pois para melhor entendimento, assuntos como Classes, Herança, Polimorfismo, Encapsulamento são assuntos mais estratégicos com relação ao assunto Objetos, esse por sua vez sendo mais prático, pois fala de um elemento que realmente realiza operações.

Para esclarecimento, você pode postar suas dúvidas no grupo de estudos, no seguinte link: Grupo Objective-C Brasil.

Para quem gostou e gostaria de acompanhar as novidades no blog é só entrar ná pagina: Objective-C Brasil.

E dar o seu like se gostar :D!!!

Para quem quiser ajudar, o que seria muito legal, basta entrar em contato comigo pelo meu email ou deixar um post no blog.

Email para contato: tiagofly@hotmail.com

Bons Estudos!!!

Herança

Quando falamos em herança, lembramos logo de algum parente mais velho que pode nos deixar algo de valor quando ele partir… :p. Mas a idéia, não é tão legal assim :(…

Em programação, HERANÇA quer dizer aquilo que podemos receber de algum antepaçado… oque nos remete ao caso descrito no parágrafo anterior ;).

Neste caso, ou em todos, herança quer nos dizer a possibilidade, ou capacidade de receber algo de alguma entidade que já exista anteriormente. E aquele que recebe todo esse embargo já existente, pode adicionar novo conteúdo, ou alterar algo recebido.

Um exemplo muito utilizado é o da Biologia, onde herdamos características gerais de nossos antepassados, que é somada a novas características que formam o que cada um é hoje. Por exemplo:

O ser humano é basicamente formado por alguns elementos como : Cabeça, braços, cabelos, olhos e cor da pele… e muitas outras, mas essas já são o suficiente.

Repare que todos temos esses elementos, mas não são totalmente iguais. Algumas pessoas tem a cor da pele diferente, cor dos olhos diferente, tamanho dos braços diferentes, tamanho e tipo de cabelos diferentes.

Essas diferenças nos tornam cada vez mais especializados (Ou seja, tornam nossas características cada vez mais únicas). No caso da programação, essas características cada vez mais únicas, tornam uma classe especializada. Dando a ela características não encontradas na sua classe base, ou como mais popularmente chamado Classe Pai.

De uma maneira geral é um modo de você simplesmente copiar uma classe já existente, aproveitando todas as regras e facilidades já criadas nelas e os recursos. Geralmente esse é o maior motive de se fazer uma Subclasse. Mas é possível realizar algumas operações nesse processo.

Criando uma subclasse, podemos fazer três mudanças nas configurações herdadas:

1. Podemos adicionar novos métodos e variáveis.
2. Podemos fazer um Override que já aborda questões de polimorfismo, tratados no próximo tutorial), que permite reescrever um método herdado, mas essa modificação não afeta o método na classe pai. E ainda poderá ser passada para outras subclasses que herdam do método pai.

Como podemos usar a ferramenta de herança?

Podemos usá-la da seguinte maneira:

3. Criar um Protocolo: Em breve darei uma melhor explicação sobre o que é e como usar protocolos, mas por hora leia o texto abaixo:
Uma Classe pode ter apenas a “maquete” de métodos e você deverá preenchê-las (implementá-las) conforme for necessário para o seu programa.

4. Mudar um Objeto sem perder o original: Digamos que você tenha uma classe que use constantemente como modelo, você não quer ficar implementando sempre o seu conteúdo, pois somente algumas modificações são o suficiente. A Herança é a sua solução! :D.

5. Possibilidade de Testes: Você pode estar fazendo um projeto que irá passar por uma avaliação antes de ser aprovado. Então você pretende fazer varias modificações no projeto para apresentar. Você não vai ficar re-escrevendo o código varias vezes. Você pode gerar subclasses das classes e fazer as alterações desejadas.

Em Objective-C não é difícil fazer uma subclasse, durante a inclusão de uma classe no projeto é possível escolher de qual classe a sua classe irá herdar os métodos e variáveis.

Não se preocupe mais tarde, esse processo poderá ser visto em um tutorias de como usar as Principais Funcionalidades do Xcode.

Como identificar se a classe que estou trabalhando é uma subclasse?

Simples veja o arquivo .h da classe. Veja o exemplo de código abaixo:

#import <Foundation/Foundation>

@interface Empresa : NSObject { //Aqui é declarado de qual Classe a sua irá herdar
NSString *nome; //  Aqui são as novas variáveis que a classe adiciona.
int quantidadeFuncionarios;

}

@property (nonatomic, retain) NSString *nome; //Aqui são as propriedades.
@property (nonatomic, assign) int quantidadeFuncionarios;

@end

Nota: Exemplo tirado do livro – IOS Programe para iPhone e iPad. Autor: Rafael Steil.

Ao fazer isso a minha classe, no exemplo de nome Empresa, herdará de NSObject os métodos e variáveis dela. Poupando o tempo de ter que reescrever a implementação de muitas coisas e permitindo a alteração adequada sem o prejuízo de perder os documentos originais de NSObject. E ainda inserindo novas iVars e declaradas como @property.

Apenas para satisfazer a curiosidade. As iVars são variáveis restritas apenas para uso interno da classe (Private) e as property são variáveis que tem acesso publico, ou seja, podem ser usadas por outros objetos para passar e receber informações externas a ele (Public). Mas é possível ajustar como esse acesso será feito.

Em breve será feito outro turtoriais focado somente na linguagem. Mostrando como funciona, e as suas peculiaridades.

Por aqui encerro este tutorial de Herança. Já que ainda será visto em prática como ela funciona, o que será muito válido, abordando novas questões.

Agradeço a todos!

Um forte abraço e bons estudos!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s