Programação java: criação de uma subclasse

Quando você escreve um programa orientado a objetos em Java, você começar a pensar sobre os dados. Você está escrevendo sobre contas. Então, o que é uma conta? Você está escrevendo código para lidar com cliques de botão. Assim que é um botão? Você está escrevendo um programa para enviar cheques aos empregados. O que é um empregado?

Neste exemplo, um empregado é alguém com um nome e um cargo. Claro, os empregados têm outras características, mas por agora manter o básico. O código nesta lista define o que significa ser um empregado.

importação de classe estática java.lang.System.out-público Employee {private String name-private void setName Cordas jobTitle-pública (String nameIn) {name = nameIn-} Cordas getName pública () {return nome-} setJobTitle public void (String jobTitleIn) {jobTitle = jobTitleIn-} public string getJobTitle () {return jobTitle-} public void cutCheck (double ValorPago) {out.printf ("Pagar à ordem de% s ", Nome) -out.printf ("(% S) *** $", JobTitle) -out.printf ("% ,. 2fn", quantia paga)-}}

No perfil, uma Empregado classe é definida. Você pode usar o que você definir aqui e estender a definição para criar novas classes, mais especializadas. Portanto, neste próximo perfil, você define uma nova classe - um Empregado em tempo integral classe.

Video: Aula Java 106 - Conceito de Herança (Superclasses e Subclasses)

FullTimeEmployee classe pública estende-se empregado {Private double double setWeeklySalary vazio benefitDeduction-pública weeklySalary-privadas (double weeklySalaryIn) {weeklySalary = weeklySalaryIn-} public double getWeeklySalary () {return weeklySalary-} setBenefitDeduction public void (double benefitDedIn) {benefitDeduction = benefitDedIn-} getBenefitDeduction public double () {return benefitDeduction-} findPaymentAmount dupla pública () {return weeklySalary - benefitDeduction-}}

Olhando para o perfil, você pode ver que cada instância do Empregado em tempo integral classe tem dois campos: weeklySalary e benefitDeduction. Mas são esses os únicos campos que cada Empregado em tempo integral instância tem? Não, eles não são.

Video: Programação em Java

A primeira linha diz que o Empregado em tempo integral classe estende a existente Empregado classe. Isto significa que, além de ter um weeklySalary e uma benefitDeduction, cada Empregado em tempo integral instância também tem dois outros campos: nome e Titulo do trabalho. Estes dois campos vir da definição da Empregado classe, que pode encontrar na primeira listagem.



No segundo perfil, a palavra mágica é estende. Quando uma classe estende uma classe existente, a classe que se estende automaticamente herda funcionalidade que está definida na classe existente. Então o Empregado em tempo integral classe inherits a nome e Titulo do trabalho Campos.

o Empregado em tempo integral classe também herda todos os métodos que são declarados no Empregado classe - nome do conjunto, getName, setJobTitle, getJobTitle, e cutCheck. o Empregado em tempo integral classe é um subclasse do Empregado classe.

Isso significa que o Empregado classe é a superclasse do Empregado em tempo integral classe. Você também pode falar em termos de parentes de sangue. o Empregado em tempo integral classe é a criança do Empregado classe, eo Empregado classe é a parente do Empregado em tempo integral classe.

É quase (mas não completamente) como se o Empregado em tempo integral classe foi definida pelo código nesta lista. Este código é falso, mas informativo.

importação de classe estática java.lang.System.out-pública FullTimeEmployee {private String name-privada Cordas jobTitle-privada double double setName vazio benefitDeduction-pública weeklySalary-privadas (String nameIn) {name = nameIn-} getName public String () {return nome-} public void setJobTitle (string jobTitleIn) {jobTitle = jobTitleIn-} public string getJobTitle () {return jobTitle-} setWeeklySalary public void (weeklySalaryIn duplo) {weeklySalary = weeklySalaryIn-} public double getWeeklySalary () {return weeklySalary-} public vazio setBenefitDeduction (benefitDedIn duplo) {benefitDeduction = benefitDedIn-} getBenefitDeduction dupla pública () {return benefitDeduction-} findPaymentAmount dupla pública () {return weeklySalary - benefitDeduction-} public void cutCheck (double ValorPago) {out.printf ("Pagar à ordem de% s ", Nome) -out.printf ("(% S) *** $", JobTitle) -out.printf ("% ,. 2fn", quantia paga)-}}

Porque é que esta listagem de código falso? Bem, a principal diferença entre esta empresa ea situação herança nas listagens anteriores é o seguinte: A classe filha não pode fazer referência direta aos campos privados de sua classe pai. Para fazer qualquer coisa com campos particulares da classe pai, a classe criança tem que chamar métodos de acesso da classe pai.

Video: Programação Java Desktop

Voltar no segundo perfil, chamando setName ( “Rufus”) seria legal, mas o código name =”Rufus” não seria. Se você acredita em tudo que lê na última lista, você acha que o código na Empregado em tempo integral classe pode fazer name =”Rufus”. Bem, ele não pode.

Você não precisa do Employee.java arquivo em seu disco rígido para escrever código que estende o Empregado classe. Tudo que você precisa é o arquivo Employee.class.


Publicações relacionadas