Projeto

Geral

Perfil

Criar uma classe por herança » Histórico » Revisão 5

Revisão 4 (Gabriel Borges da Conceição, 21/05/2019 23:13 h) → Revisão 5/8 (Gabriel Borges da Conceição, 21/05/2019 23:17 h)

# Criar uma classe por herança 

 Vamos criar o classe "RoboBid" da mesma maneira que criamos a classe "RoboUni"(adicione os atributos y e V_y à essa nova classe). Agora, basta clicar na classe "RoboBid", "properties", "inheritance", "change inheritance": 
 ![](herenca.png) 

 Veja que precisamos selecionar a classe Pai e clicar "Inherit From Selected". Com isso, fizemos com que a classe "RoboBid" se tornasse uma classe herdada da classe "RoboUni". 

 Repare também que a herança é feita a partir do Filho, ou seja, a classe Filha deve escolher seu Pai. 

 Para conferir a relação entre as classes do nosso projeto, basta, na aba do projeto, fazer o seguinte: 
 ![](viewhierarchy.png) 

 E podemos ver: 

 ![](pai.png) 

 E 

 ![](filha.png) 

 Agora, vamos criar os métodos "getPos2", "setPos2", "getVel2", "setVel2" e "move2": 

 getPos2: 
 ![](getpos2.png) 

 setPos2: 
 ![](setpos2.png) 

 getVel2: 
 ![](getvel2.png) 

 setVel2: 
 ![](setvel2.png) 

 move2: 
 ![](move2.png) 


 Repare que não acessamos diretamente por "unbundle by name" ou "bundle by name" nenhum dos atributos da classe filha RoboBid que são herdados da classe pai RoboUni. Isso se deve ao fato de que os atributos de uma classe são **obrigatoriamente privados** e, portanto, nem mesmo sua classe filha pode acessar esses dados diretamente.  

 A classe filha herda os atributos, mas precisamos acessá-los pelos de get e set da classe pai. Esses métodos têm que ser encapsulados como "public" ou "protected" para que possam ser utilizados na classe filha. No nosso exemplo, todos os métodos foram deixados como "public". 


 Repare que nos métodos da classe filha (classe amarela), utilizei métodos da classe pai(verde) por herança.