Olá Todos!
Gostaria de contar com a ajuda de vocês numa dúvida sobre instanciação no código abaixo.
Ao criar o objeto cliSub tem-se a visibilidade dos métodos abstratos e do método Emprestimo().
Mas ao criar o objeto cli não tem-se a visibilidade do método Emprestimo(), uma vez que estou
criando um Cliente e não um ClienteSub.
Pergunta:
Há como ter a visibilidade do Emprestimo() fazendo a instanciação desta forma?
Ou de uma maneira que eu centralize a criação de objetos concretos herdados de Cliente?
Cliente cli = new ClienteSub();
Porque isso?:
Porque estou utilizando o Patern AbstractFactory, juntamente com o FactoryMethod numa aplicação como esta e não consigo
trabalhar com os métodos da classe concreta.
Obrigado a todos!
public abstract class Cliente {
abstract void Compra();
abstract void Orcamento();
}
public class ClienteSub extends Cliente{
void Compra() {
System.out.println("Comprando");
}
void Orcamento() {
System.out.println("Orçando");
}
public void Emprestimo(){
System.out.println("Tomando Empréstimo");
}
}
public class main {
public static void main(String []args){
ClienteSub cliSub = new ClienteSub();
cliSub.Orcamento();
Cliente cli = new ClienteSub();
cli.Emprestimo(); <---------Objetivo
}
}
