Projeto

Geral

Perfil

Criar uma classe por herança » Histórico » Versão 6

Gabriel Borges da Conceição, 22/05/2019 00:00 h

1 1 Gabriel Borges da Conceição
# Criar uma classe por herança
2
3 2 Gabriel Borges da Conceição
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":
4
![](herenca.png)
5
6
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".
7
8
Repare também que a herança é feita a partir do Filho, ou seja, a classe Filha deve escolher seu Pai.
9
10 6 Gabriel Borges da Conceição
Para conferir a relação entre as classes do nosso projeto. Basta, na aba do projeto, fazer o seguinte:
11 2 Gabriel Borges da Conceição
![](viewhierarchy.png)
12
13
E podemos ver:
14
15
![](pai.png)
16
17
E
18
19 1 Gabriel Borges da Conceição
![](filha.png)
20 6 Gabriel Borges da Conceição
21
22
Repare que todas as classes do nosso projeto são descendentes de "LabView Object".
23 3 Gabriel Borges da Conceição
24
Agora, vamos criar os métodos "getPos2", "setPos2", "getVel2", "setVel2" e "move2":
25 4 Gabriel Borges da Conceição
26
getPos2:
27
![](getpos2.png)
28
29
setPos2:
30
![](setpos2.png)
31
32
getVel2:
33
![](getvel2.png)
34
35
setVel2:
36
![](setvel2.png)
37
38
move2:
39
![](move2.png)
40 5 Gabriel Borges da Conceição
41
42
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. 
43
44
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".
45
46
47
Repare que nos métodos da classe filha (classe amarela), utilizei métodos da classe pai(verde) por herança.