Skip to content

Commit

Permalink
Polimorfismo
Browse files Browse the repository at this point in the history
  • Loading branch information
vigusmao committed Apr 16, 2021
1 parent 63a678d commit fd28207
Show file tree
Hide file tree
Showing 9 changed files with 169 additions and 0 deletions.
6 changes: 6 additions & 0 deletions ReinoAnimal/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions ReinoAnimal/ReinoAnimal.iml
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
35 changes: 35 additions & 0 deletions ReinoAnimal/src/Animal.java
@@ -0,0 +1,35 @@
public class Animal {

private String especie;

private String filo;

private String genero;

private String classe;

private int anoNascimento;

public Animal(String especie, String classe) {
this.especie = especie;
this.classe = classe;
}

public void dormir() {
System.out.println("Dormindo...");
}

public void mover(int velocidadeEmMilimetrosPorSegundo) {
System.out.println("Movendo-se a "
+ velocidadeEmMilimetrosPorSegundo
+ " mm/s...");
}

public void comer() {
System.out.println("Comendo...");
}

public String getEspecie() {
return especie;
}
}
25 changes: 25 additions & 0 deletions ReinoAnimal/src/Cachorro.java
@@ -0,0 +1,25 @@
public class Cachorro extends Mamifero {

public Cachorro() {
super("Canídeo");
}

private String raca;

public void roerOsso() {
System.out.println("Roendo osso...");
}

public void latir(int volumeEmDecibeis) {
System.out.println("Latindo a " + volumeEmDecibeis + "decibéis...");
}

@Override
public void emitirSom() {
latir(20);
}

public void pular() {
System.out.println("Pulando...");
}
}
17 changes: 17 additions & 0 deletions ReinoAnimal/src/Mamifero.java
@@ -0,0 +1,17 @@
public class Mamifero extends Animal {

public Mamifero(String especie) {
super(especie, "Mamífero");
}

@Override
public void comer() {
System.out.println("Bebendo leite...");
}

public void emitirSom() {
System.out.println("Emitindo algum som genérico de mamífero...");
}


}
15 changes: 15 additions & 0 deletions ReinoAnimal/src/Morcego.java
@@ -0,0 +1,15 @@
public class Morcego extends Mamifero {

public Morcego() {
super("Morceguídeo");
}

public void voar() {
System.out.println("Voando...");
}

@Override
public void emitirSom() {
System.out.println("Emitindo ultrassom de morcego...");
}
}
30 changes: 30 additions & 0 deletions ReinoAnimal/src/Principal.java
@@ -0,0 +1,30 @@
public class Principal {

public static void main(String[] args) {

Zoologico zoo = new Zoologico();

Cachorro caozinho1 = new Cachorro();
Cachorro caozinho2 = new Cachorro();
Morcego morcego1 = new Morcego();
Zebra zebra1 = new Zebra();

Animal animalEstranho = new Animal(
"Ornitorrinco da Montanha", "Nem Ele Sabe");

zoo.incluirAnimal(caozinho1);
zoo.incluirAnimal(caozinho2);
zoo.incluirAnimal(morcego1);
zoo.incluirAnimal(zebra1);

// zoo.incluirAnimal(animalEstranho); // não seria aceito!

for (int i = 0; i < 10; i++) {
Mamifero mamiferoSorteado = zoo.sortearBicho();
System.out.println("\n" + mamiferoSorteado.getEspecie());
mamiferoSorteado.emitirSom();
}

// mamiferoSorteado.latir(80); // não seria aceito, porque alguns Mamiferos não sabem latir!
}
}
8 changes: 8 additions & 0 deletions ReinoAnimal/src/Zebra.java
@@ -0,0 +1,8 @@
public class Zebra extends Mamifero {

public Zebra() {
super("Zebra");
}


}
22 changes: 22 additions & 0 deletions ReinoAnimal/src/Zoologico.java
@@ -0,0 +1,22 @@
import java.util.ArrayList;
import java.util.Random;

public class Zoologico {

private static Random random = new Random();

private ArrayList<Mamifero> bichos;

public Zoologico() {
this.bichos = new ArrayList<>();
}

public Mamifero sortearBicho() {
int posicao = random.nextInt(this.bichos.size());
return this.bichos.get(posicao);
}

public void incluirAnimal(Mamifero bicho) {
this.bichos.add(bicho);
}
}

0 comments on commit fd28207

Please sign in to comment.