No projeto dos Funcionários: Segui todos os passos do professor mas, tomei a liberdade de colocar mais um atributo na classe Funcionarios, que seria o private static int total. Ele conta os funcionários sempre que referencio uma nova instancia, e ele faz isso dentro de um construtor.
public class Funcionario {
private String name;
private String cpf;
private double salario;
private static int total;
public Funcionario(){
Funcionario.total++;
System.out.println("Quantidade de funcionários no total: "+ Funcionario.total);
}
}
Segui instanciando novos tipos, herdando de funcionários, e tudo compilou normalmente. Mas no projeto das contas corrente e poupança, isso não aconteceu: A classe mãe Conta, tinha um construtor especifico e quando eu fui instanciar a conta poupança e a conta corrente não compilou, pois eu deveria criar um construtor pra eles trazendo as referencias específicas do construtor da classe mãe Conta; e isso não foi preciso no exemplo anterior.
public class Conta {
private double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total;
// Construtor especifico
public Conta(int agencia, int numero){
Conta.total++;
if(agencia>0 && numero > 0){
this.agencia = agencia;
this.numero = numero;
System.out.println("Conta aberta com sucesso!");
System.out.println("Agencia: "+ agencia);
System.out.println("Conta: "+ numero);
}else
System.out.println("Agencia e conta prcisão ter valores válidos");
return;
}
}
`
//new ContaCorrente
public class ContaCorrente extends Conta{
//construtor
public ContaCorrente(int agencia, int numero){
super(agencia, numero);//chamada do construtor da classe mãe.
}
} `
Qual a diferença dos dois construtores? Será que o construtor da classe Funcionários é considerado como padrão, já que não recebe parâmetros? Espero que tenham entendido :);