Вы находитесь на странице: 1из 4

Universidade Paulista (UNIP) / Campi: Chcara II / Paraso

Instituto de Cincias Exatas e Tecnolgicas (ICET)


Turma: Sistema de Informao / Cincia da Computao
Disciplina: Linguagem de Programao Orientada a Objetos
Prof. MSc. Vladimir Camelo
Exerccios utilizando Polimorfismo
PRIMEIRO EXEMPLO DE UTILIZAO DE POLIMORFISMO
public class FiguraGeometrica2D {
private double base;
protected double altura;
public FiguraGeometrica2D( double b, double h ) {
base = b;
altura = h;
}
public double calculaArea() {
return base * altura;
}
}
public class Quadrado extends FiguraGeometrica2D{
public Quadrado (double base, double altura) {
super (base, altura);
}
public double calculaArea( ) {
return super.calculaArea();
}
}
public class Triangulo extends FiguraGeometrica2D {
public Triangulo (double base, double altura) {
super (base, altura);
}
public double calculaArea() {
return super.calculaArea()/2.0;
}
}
public class Trapezio extends FiguraGeometrica2D {
private double baseMaior;
public Trapezio (double baseMenor, double altura, double baseMaior) {
super (baseMenor, altura);
this.baseMaior = baseMaior;
}

public double calculaArea() {


return super.calculaArea()/2 + baseMaior*altura/2;
}

public class TesteFigura {


public static void main (String args[]) {
Quadrado q1 = new Quadrado( 10, 20);
System.out.println ("A figura geomtrica um: " + q1.getClass().getSimpleName());
System.out.println ("Valor da rea: " + q1.calculaArea());
Triangulo t1 = new Triangulo (10, 20);
System.out.println ("A figura geomtrica um: " + t1.getClass().getSimpleName());
System.out.println ("Valor da rea: " + t1.calculaArea());
Trapezio tr1 = new Trapezio (4, 24, 6);
System.out.println ("A figura geomtrica um: " + tr1.getClass().getSimpleName());
System.out.println ("Valor da rea: " + tr1.calculaArea());
FiguraGeometrica2D q2 = new Quadrado (30, 40);
System.out.println ("A figura geomtrica um: " + q2.getClass().getSimpleName());
System.out.println ("Valor da rea: " + q2.calculaArea());
FiguraGeometrica2D t2 = new Triangulo (30, 40);
System.out.println ("A figura geomtrica um: " + t2.getClass().getSimpleName());
System.out.println ("Valor da rea: " + t2.calculaArea());

FiguraGeometrica2D tr2 = new Trapezio (8, 12, 6);


System.out.println ("A figura geomtrica um: " + tr1.getClass().getSimpleName());
System.out.println ("Valor da rea: " + tr2.calculaArea());
}

SEGUNDO EXEMPLO DE UTILIZAO DE POLIMORFISMO


public class EmpregadoComissionadoFixo extends EmpregadoComissionado {
private double salarioFixo;
public EmpregadoComissionadoFixo(String primeiroNome,
String segundoNome,
String numeroCIC,
double vendas,
double taxa,
double salFixo ) {
super (primeiroNome, segundoNome, numeroCIC, vendas, taxa);
setSalarioFixo ( salFixo );
}
public void setSalarioFixo ( double salario) {
salarioFixo = (salario < 0.0 ) ? 0.0 : salario;
}
public double getSalarioFixo () {
return salarioFixo;
}
public double calculaGanhos(){
return (salarioFixo + super.calculaGanhos());
}
public String toString() {
return super.toString() +
}
}

"\nSalrio fixo: " + salarioFixo;

public class EmpregadoComissionado extends Object {


private
private
private
private
private

String
String
String
double
double

nome;
sobrenome;
CIC;
vendasBrutas;
comissao;

public EmpregadoComissionado(String
String
String
double
double
nome = primeiroNome;
sobrenome = segundoNome;
CIC = numeroCIC;
setVendasBrutas( vendas );
setComissao( taxa );
}

primeiroNome,
segundoNome,
numeroCIC,
vendas,
taxa ) {

public void setNome( String primeiroNome ) {


nome = primeiroNome;
}

public String getNome() {


return nome;
}
public void setSobrenome( String segundoNome ){
sobrenome = segundoNome;
}
public String getSobrenome() {
return sobrenome;
}
public void setCIC( String numeroCIC ) {
CIC = numeroCIC;
}
public String getCIC() {
return CIC;
}
public void setVendasBrutas( double vendas ) {
vendasBrutas = ( vendas < 0.0 ) ? 0.0 : vendas;
}
public double getVendasBrutas() {
return vendasBrutas;
}
public void setComissao( double taxa ) {
comissao = ( taxa > 0.0 && taxa < 1.0 ) ? taxa : 0.0;
}
public double getComissao() {
return comissao;
}
public double calculaGanhos(){
return comissao * vendasBrutas;
}
public String toString(){
return String.format( "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n %s%.2f ",
"Nome Completo", nome, sobrenome,
"Nmero do CIC", CIC,
"Vendas Brutas", vendasBrutas,
"Taxa de comisso", comissao,
"Salrio Total ", calculaGanhos());
}

public class TestePolimorfismo {


public static void main( String args[] ) {
EmpregadoComissionado e1 = new EmpregadoComissionado("Vladimir",
"Camelo","123456789-01", 10000, 0.6 );
System.out.println(e1 + "\n\nInformaes do empregado");
EmpregadoComissionadoFixo e2 = new EmpregadoComissionadoFixo(
"Anna Clara","Camelo", "111111111-11",5000, 0.1, 7500);
System.out.println( e2 + "\n\nInformaes do empregado" );
e1 = e2; // instruo mais importante do programa
System.out.println( e1 + "\n\nAinda no sei que tipo de empregado !!!");
EmpregadoComissionado e3 = new EmpregadoComissionadoFixo(
"Ana", "Maria", "3456543-32", 2000, 0.5, 12000);
System.out.printf( e3 + "\n\nO que ser o empregado e3??");
}
}

Вам также может понравиться