Índice:
Vídeo: Curso POO Java #10b - Herança (Parte 1) 2024
Você pode usar subclasses em Java. Criar subclasses está bem, mas você não ganha nada dessas subclasses, a menos que você escreva código para usá-las. Então, aqui, você explora o código que usa subclasses.
Agora chegou a hora de você classificar-se como uma pessoa de tipo F, uma pessoa tipo-P ou uma pessoa de tipo-T.
- Uma pessoa de tipo F quer ver os fundamentos. (A carta F significa fundamentos.) "Mostre-me um programa que estabelece os princípios em sua forma mais básica e básica", diz a pessoa de tipo F. Uma pessoa de tipo F não está preocupada com sinos e assobios. Os sinos vêm depois, e os assobios podem nunca vir. Se você é uma pessoa de tipo F, você deseja ver um programa que usa as subclasses
FullTimeEmployee
ePartTimeEmployee
e, em seguida, sai do seu caminho para que você possa fazer algum trabalho. - Uma pessoa tipo-P quer aplicações práticas. (A carta P representa prática.) As pessoas Tipo-P precisam ver idéias em contexto; Caso contrário, as idéias flutuam muito rapidamente. "Mostre-me um programa que demonstra a utilidade das subclasses
FullTimeEmployee
ePartTimeEmployee
", diz a pessoa tipo-P. "Eu não uso de nada para suas abstrações fedidas. Eu quero exemplos da vida real, e eu quero eles agora! " - Uma pessoa tipo-T quer teste o código nas subclasses
FullTimeEmployee
ePartTimeEmployee
. Testar o código significa colocar o código através de seus passos - verificar a precisão da saída quando a entrada é comum, quando a entrada é inesperada e mesmo quando a entrada é completamente irreal. Além disso, a pessoa tipo-T quer usar um padrão, um contorno facilmente reconhecível para o código de teste para que outros programadores possam entender rapidamente os resultados do teste. A pessoa tipo-T cria testes JUnit que usam as subclassesFullTimeEmployee
ePartTimeEmployee
.
O código abaixo, que é para a multidão do tipo F, é magra e simples e faz uma boa leitura na hora de dormir.
Se você é uma pessoa de tipo-P ou tipo-T, visite o mymycode. com. O site contém exemplos para satisfazer os leitores tipo-P e tipo-T.
Este código mostra um programa bare-bones que usa as subclasses
FullTimeEmployee
e
PartTimeEmployee
. Aqui está a saída do programa.
classe pública DoPayrollTypeF {
public static void main (String args []) {
FullTimeEmployee ftEmployee = new FullTimeEmployee ();
ftEmployee. setName ("Barry Burd");
ftEmployee. setJobTitle ("CEO");
ftEmployee.setWeeklySalary (5000,00);
ftEmployee. setBenefitDeduction (500. 00);
ftEmployee. cutCheck (ftEmployee. findPaymentAmount ());
Sistema. Fora. println ();
PartTimeEmployee ptEmployee = new PartTimeEmployee ();
ptEmployee. setName ("Steve Surace");
ptEmployee. setJobTitle ("Driver");
ptEmployee. setHardlyRate (7. 53);
ptEmployee. cutCheck (ptEmployee. findPaymentAmount (10));
}
}
Para entender este código, você precisa manter um olho em três classes:
Employee
,
FullTimeEmployee
e
PartTimeEmployee
.
A primeira metade do código trata de um funcionário de tempo integral. Observe quantos métodos estão disponíveis para uso com a variável
ftEmployee
? Por exemplo, você pode chamar
ftEmployee. setWeeklySalary
porque
ftEmployee
possui o tipo
FullTimeEmployee
. Você também pode chamar
ftEmployee. setName
porque a classe
FullTimeEmployee
estende a classe
Employee
.
Como
cutCheck
é declarado na classe
Employee
, você pode chamar
ftEmployee. cutCheck
. Mas você também pode chamar
ftEmployee. findPaymentAmount
porque um método
findPaymentAmount
está na classe
FullTimeEmployee
.
Fazendo tipos combinarem
Olhe novamente na primeira metade do código. Tire especial atenção dessa última declaração - aquela em que o empregado em tempo integral é realmente cortado um cheque. A declaração forma uma cadeia de valores agradável e longa e seus tipos. Você pode ver isso lendo a declaração de dentro para fora:
- Método
ftEmployee. findPaymentAmount
é chamado com uma lista de parâmetros vazia. Isso é bom porque o métodofindPaymentAmount
não possui parâmetros. - O método
findPaymentAmount
retorna um valor do tipoduplo
. - O
duplo
valor queftEmployee. findPaymentAmount
retorna é passado para o métodoftEmployee. cutCheck
. Isso é bom porque o métodocutCheck
leva um parâmetro do tipoduplo
.
Confira a ilustração gráfica fantástica.
Parâmetros correspondentes.Alimente sempre um método dos tipos de valor que deseja na sua lista de parâmetros.
A segunda metade da história
Na segunda metade do código, o código cria um objeto do tipo
PartTimeEmployee
. Uma variável do tipo
PartTimeEmployee
pode fazer algumas das mesmas coisas que uma variável
FullTimeEmployee
pode fazer. Mas a classe
PartTimeEmployee
não possui os métodos
setWeeklySalary
e
setBenefitDeduction
. Em vez disso, a classe
PartTimeEmployee
tem o método
setHourlyRate
. Portanto, a próxima linha é uma chamada para o método
setHourlyRate
.
A última linha do código é, de longe, a mais interessante. Nessa linha, o código entrega o número
10
(o número de horas trabalhadas) ao método
findPaymentAmount
. Compare isso com a chamada anterior para
findPaymentAmount
- a chamada para o funcionário em tempo integral na primeira metade do código.Entre as duas subclasses,
FullTimeEmployee
e
PartTimeEmployee
, são dois métodos diferentes
findPaymentAmount
. Os dois métodos têm dois tipos diferentes de listas de parâmetros:
- O método
FullTimeEmployee
classefindPaymentAmount
não possui parâmetros. - O
PartTimeEmployee
classefindPaymentAmount
método leva umint
parâmetro.
Isto é par para o curso. Encontrar o valor do pagamento para um empregado a tempo parcial não é o mesmo que encontrar o valor do pagamento para um funcionário de tempo integral. O pagamento de um trabalhador a tempo parcial muda a cada semana, dependendo do número de horas que o funcionário trabalha em uma semana. O salário do empregado em tempo integral permanece igual a cada semana. Portanto, as classes
FullTimeEmployee
e
PartTimeEmployee
têm os métodos
findPaymentAmount
, mas o método de cada classe funciona de forma bastante diferente.