HERANÇA
Linguagem de Programação II
Ciência da Computação
Prof.ª Ms. Elaine Cecília Gatto
HERANÇA
• É uma forma de reutilização de software na qual
uma nova classe é criada, absorvendo membros de
uma classe existente e aprimorada com
capacidades novas ou modificadas.
• Permite enconomia de tempo no desenvolvimento
de programas, reutilizando software de alta
qualidade, testado e depurado
HERANÇA
• SUPERCLASSE:
• Quando uma nova classe herda MEMBROS de
uma classe existente

• SUBCLASSE:
• Nova classe criada com herança de MEMBROS
• Uma subclasse pode se tornar uma superclasse
para outras subclasses
HERANÇA
• SUBCLASSE:
• Tem seus próprios métodos e classes
• É mais específica que a superclasse
• Representa um grupo mais ESPECIALIZADO de
objetos
• Possui comportamentos da SUPERCLASSE mais
os adicionais específicos a ela
HERANÇA
• SUPERCLASSE DIRETA:
• É a superclasse a partir da qual a subclasse herda
explicitamente
• SUPERCLASSE INDIRETA:
• Qualquer superclasse acima da classe direta na
HIERARQUIA DE CLASSE

• HIERARQUIA DE CLASSE:
• Define os relacionamentos de herança entre as
classes
HERANÇA
• HIERARQUIA DE CLASSE:
• Inicia com a classe OBJECT (pacote java.lang)
• TODA classe JAVA ESTENDE (“herda de”) direta
ou indiretamente a classe OBJECT!
• HIERARQUIA SIMPLES:
• Uma classe é derivada de uma superclasse direta
• JAVA NÃO SUPORTA HERANÇA MULTIPLA
HERANÇA
• HERANÇA MULTIPLA:
• Ocorre quando uma classe é derivada de mais de
uma superclasse direta

• RELACIONAMENTO É UM:
• Representa a herança
• Um objeto de uma subclasse também pode ser
tratrado como um objeto da sua superclasse
• Exemplo: um carro É UM veículo
HERANÇA
• RELACIONAMENTO TEM UM:
• Representa a composição
• Um objeto contém uma ou mais referências de
objeto como membros
• Exemplo:
• um carro TEM UMA direção
• um objeto carro TEM UMA referência a um
objeto direção
SUPERCLASSES E SUBCLASSES
• Um objeto de uma classe frequentemente também
É UM objeto de outra classe
• EXEMPLO:
• Um retangulo É UM quadrilátero
• Um quadrado É UM quadrilátero
• Um paralelogramo É UM quadrilátero
• Um trapezóide É UM quadrilátero
SUPERCLASSES E SUBCLASSES
• Um retangulo HERDA DE um quadrilátero
• Quadrilatero é uma SUPERCLASSE
• Retangulo é uma SUBCLASSE
• Um retangulo é um tipo específico de quadrilatero
• MAS um quadrilatero NÃO É UM retangulo
• Um quadrilatero PODER SER:
• Um paralelogramo
• Um quadrado
• Etc
SUPERCLASSES E SUBCLASSES
• Superclasses são mais gerais
• Subclasses são mais específicas
• Cada objeto de SUBCLASSE é um objeto de sua
SUPERCLASSE
• Uma SUPERCLASSE pode ter várias SUBLCLASSES
• Exemplo:
• Uma superclasse VEÍCULO representa todos os
veículos
• Uma subclasse CARRO representa um
subconjunto de veículo menor e mais específico
SUPERCLASSES E SUBCLASSES
• Relacionamentos de herança formam estruturas
hierarquicas do tipo ARVORE
• Há situações em que uma classe pode ser ao
mesmo tempo uma subclasse e também uma
superclasse

• HIERARQUIA DE CLASSE = HIERARQUIA DE
HERANÇA
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
• A leitura do diagrama é feita da seguinte forma: de
baixo para cima, seguindo as setas:
• Um Administrador é um membro do Corpo
Docente
• Um Professor é um membro do Corpo Docente
• Um Corpo Docente é um membro de Empregado
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
• Um Funcionário é membro de Empregado
• Um Empregado é membro da comunidade
• Um Aluno é membro da comunidade
• Um Graduado é membro da comunidade
• Membro da Comunidade é a superclasse direta de
Empregado, Aluno e Graduados
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
• Membro da Comunidade é a superclasse indireta
de todas as outras subclasses no diagrama
• Um administrador é um membro do corpo docente
que é um membro de empregado que é um
membro da comunidade
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
SUPERCLASSES E SUBCLASSES
• Nem todo relacionamento de classe é um
relacionamento de herança
• Relacionamento TEM UM:
• As classes têm membros que são referencias a
objetos de outras classes
• Criam classes compondo classes existentes
SUPERCLASSES E SUBCLASSES
• EXEMPLO:
• Classe empregado
• Classe dataDeNascimento
• Classe numeroDeTelefone
• Um empregado é uma dataDeNascimento?????
• Um empregado TEM UMA dataDeNascimento!
• Um empregado é um numeroDeTelefone?
• Um empregado TEM UM numeroDeTelefone!
SUPERCLASSES E SUBCLASSES
• Importante:
• Objetos de superclasse não podem ser tratados
como objetos de suas subclasses

• Exemplo:
• Todos os carros são veículos, mas nem todos os
veículos são carros
SUPERCLASSES E SUBCLASSES
• Desvantagem da herança:
• Uma subclassepode herdar métodos que ela não
necessita ou que não deveria ter
• Às vezes a subclasse precisa de uma versão
personalizada do método
• SOBRESCREVER:
• A subclasse pode redefinir o método da
superclasse com uma implementação mais
adequada para ela (@OVERRIDE)
MEMBROS PROTECTED
• Membros public:
• São acessíveis onde quer que o programa tenha
uma referencia a um objeto dessa classe ou uma
de suas subclasses
• Membor private:
• Só são acessíveis por dentro da própria classe
• Membros private de uma superclasse NÃO SÃO
HERDADOS pelas suas subclasses
MEMBROS PROTECTED
• MEMBROS PROTECTED:
• Nível intermediário de acesso
• Membros protected de uma SUPERCLASSE
podem ser acessados por:
• membros dessa SUPERCLASSE
• membros de suas SUBCLASSES
• membros de OUTRAS classes no mesmo
PACOTE
MEMBROS PROTECTED
• Membros public e protected da SUPERCLASSE
tornam-se membros public e protected da
subclasse
• PALAVRA CHAVE SUPER:
• Quando um método da SUBCLASSE sobrescrever
um método da SUPERCLASSE, o método da
SUPERCLASSE pode ser acessado a partir da
SUBCLASSE usando a palavra chave SUPER antes
o nome de método da SUPERCLASSE e um
separador de ponto
RELACIONAMENTOS
• PALAVRA CHAVE EXTENDS:
• Usada para indicar que a classe herda de outra
classe:

• public class ClasseExemplo extends Object
• public class Classe2 extends Classe1
• A classe exemplo herda da classe objeto
• A classe2 herda da classe 1
CLASSE OBJECT
• Herança utilizada para criar classes de classes
existentes
• Cada classe Java herda uma classe existente – exceto a
classe OBJECT (que não contem nenhum campo)
• Cada classe Java herda direta ou indiretamente
métodos de OBJECT.
• Se uma classe Java não especificar que ela herda outra
classe, a nova classe herda OBJECT implicitamente
CLASSE OBJECT
• Toda e qualquer classe em Java é uma subclasse da
classe OBJECT
• É a superclasse de todas as classes
• http://docs.oracle.com/javase/7/docs/api/
Construtores em subclasses
• Instanciar um objeto de SUBCLASSE inicia uma
cadeia de chamadas de construtor;
• O construtor de SUBCLASSE, invoca o construtor de
sua SUPERCLASSE direta, antes de realizar suas
próprias tarefas

• Invocação implícita: chama o construtor padrão ou
construtor sem argumentos
• Invocação explícita: usa a palavra chave SUPER
Construtores em subclasses
• Se a SUPERCLASSE é derivada de outra classe, o
construtor da SUPERCLASSE invoca o construtor da
próxima classe no topo da hierarquia

• O último construtor chamado na cadeia é sempre
o construtor da classe OBJECT
• O corpo do construtor de SUBCLASSE original
termina a execução por último.
Construtores em subclasses
• O construtor de cada SUPERCLASSE manipula as
variáveis de instância de SUPERCLASSE que o
objeto de SUBCLASSE herda

• Quando um programa cria um objeto da
SUBCLASSE, o construtor da SUBCLASSE
imediatamente
chama
o
construtor
da
SUPERCLASSE
Construtores em subclasses
• O corpo do construtor da SUPERCLASSE executa
para inicializar as variáveis de instância da
SUPERCLASSE que fazem parte do objeto da
SUBCLASSE
•O
corpo
do
construtor
da
SUBCLASSE, então, executa para inicializar variáveis
de instância somente da SUBCLASSE
Patentes de código
• A herança permite que você patenteie seu código e
os venda com as licenças apropriadas ou apenas
disponibilizando para outros usuários em formato
de bytecode
• BYTECODE JAVA: é um formato de código
intermediário entre o código fonte, o texto que o
programador consegue manipular, e o código de
máquina, que o computador consegue executar.
Patentes de código
Permite portabilidade pois executa em qualquer plataforma computacional
Patentes de código
• A herança permite que o programador NÃO altere
o código-fonte da SUPERCLASSE, mas permite que
ele o utilize em sua classe proprietária
• Classes proprietárias: são as classes desenvolvidas
por desenvolvedores (por vocês – são classes
personalizadas)

• Herança
preserva
a
integridade
da
SUPERCLASSE, portanto a sua SUBCLASSE não afeta
o código-fonte da SUPERCLASSE
Patentes de código
• Um programador Java não precisa entender — e
nem tomar conhecimento — dos bytecodes Java
para ser proficiente na linguagem, da mesma
forma que um programador de qualquer
linguagem de alto nível compilada para linguagem
de máquina não precisa conhecer a linguagem de
montagem do computador hospedeiro para
escrever bons programas naquela linguagem.
Patentes de código
• Em seus projeto crie menos classes que fornecem
funcionalidades mais substanciais, isso evitará
problemas na utilização das classes

• Muitas classes cria problema de gerenciamento e
pode indicar mal uso de reutilização de software
Patentes de código
• Se SUBCLASSES tem mais funcionalidades do que
precisam de fato, a memória e os recursos
computacionais podem ser desperdiçados

• Portanto, use herança com sabedoria! Herde
apenas das SUPERCLASSES que fornecem as
funcionalidades que de fato você precisa
EXEMPLO 1
package br.com.exemploheranca;
public class pessoa {
String nome, idade, endereco = "R: Java ,501";

public void ImprimeNome() {
System.out.println("o nome é:");
System.out.println("Endereco: " + endereco);
}
}
EXEMPLO 1
package br.com.exemploheranca;
public class fornecedor extends pessoa{
String cnpj;

public void ImprimeNome() {
System.out.println("O nome do fornecedor é :
" + nome + "n Cnpj: " + cnpj);
}
}
EXEMPLO 1
package br.com.exemploheranca;
public class cliente extends pessoa {
String cpf;

public void ImprimeNome() {
System.out.println("Nome do cliente é : " +
nome + "n Nº CPF: " + cpf + "n Seu endereco :" +
endereco);
}
}
EXEMPLO 1
package br.com.exemploheranca;

public class principal {
public static void main(String[] args) {
cliente c = new cliente();
c.nome = "Luiz";
c.cpf = "073.777.796-21";
c.ImprimeNome();
fornecedor f = new fornecedor();
f.nome = "Deltatronic";
f.cnpj = "073.856.9856.52-10";
f.ImprimeNome();
}
}
EXEMPLO 2
EXERCÍCIOS
• Desenhe uma hierarquia de herança para
alunos universitários. Utilize ALUNO como
superclasse da hierarquia, então herde
ALUNO com as classes ALUNODEGRADUAÇÃO e
ALUNOGRADUADO.
Continue
a
estender
a
hierarquia o mais profundo que conseguir
(vários níveis). Depois de desenhar a
hierarquia,
discuta
os
relacionamentos
entre as classes. Em seguida, crie as
classes e crie um programa Java que
demonstre sua utilização.
EXERCÍCIOS
• Desenhe
uma
hierarquia
de
herança
para
QUADRILATERIO, TRAPEZIO, PARALELOGRAMO, RETANGULO e
QUADRADO. Utilize QUADRILATERO como a superclasse da
hierarquia. Faça a hierarquia o mais profundo que
conseguir (com muitos níveis). Especifique as
variáveis de instância e os métodos para cada
classe. As variáveis de instância private de
QUADRILATERO devem ser os pares x e y de coordenadas
para os quatro ontos que delimitam o QUADRILATERO.
Escreva um programa em Java que instancia os objetos
de suas classes e gera saída da área de cada objeto
– menos o QUADRILATERO.

JAVA - Herança

  • 1.
    HERANÇA Linguagem de ProgramaçãoII Ciência da Computação Prof.ª Ms. Elaine Cecília Gatto
  • 2.
    HERANÇA • É umaforma de reutilização de software na qual uma nova classe é criada, absorvendo membros de uma classe existente e aprimorada com capacidades novas ou modificadas. • Permite enconomia de tempo no desenvolvimento de programas, reutilizando software de alta qualidade, testado e depurado
  • 3.
    HERANÇA • SUPERCLASSE: • Quandouma nova classe herda MEMBROS de uma classe existente • SUBCLASSE: • Nova classe criada com herança de MEMBROS • Uma subclasse pode se tornar uma superclasse para outras subclasses
  • 4.
    HERANÇA • SUBCLASSE: • Temseus próprios métodos e classes • É mais específica que a superclasse • Representa um grupo mais ESPECIALIZADO de objetos • Possui comportamentos da SUPERCLASSE mais os adicionais específicos a ela
  • 5.
    HERANÇA • SUPERCLASSE DIRETA: •É a superclasse a partir da qual a subclasse herda explicitamente • SUPERCLASSE INDIRETA: • Qualquer superclasse acima da classe direta na HIERARQUIA DE CLASSE • HIERARQUIA DE CLASSE: • Define os relacionamentos de herança entre as classes
  • 6.
    HERANÇA • HIERARQUIA DECLASSE: • Inicia com a classe OBJECT (pacote java.lang) • TODA classe JAVA ESTENDE (“herda de”) direta ou indiretamente a classe OBJECT! • HIERARQUIA SIMPLES: • Uma classe é derivada de uma superclasse direta • JAVA NÃO SUPORTA HERANÇA MULTIPLA
  • 7.
    HERANÇA • HERANÇA MULTIPLA: •Ocorre quando uma classe é derivada de mais de uma superclasse direta • RELACIONAMENTO É UM: • Representa a herança • Um objeto de uma subclasse também pode ser tratrado como um objeto da sua superclasse • Exemplo: um carro É UM veículo
  • 8.
    HERANÇA • RELACIONAMENTO TEMUM: • Representa a composição • Um objeto contém uma ou mais referências de objeto como membros • Exemplo: • um carro TEM UMA direção • um objeto carro TEM UMA referência a um objeto direção
  • 9.
    SUPERCLASSES E SUBCLASSES •Um objeto de uma classe frequentemente também É UM objeto de outra classe • EXEMPLO: • Um retangulo É UM quadrilátero • Um quadrado É UM quadrilátero • Um paralelogramo É UM quadrilátero • Um trapezóide É UM quadrilátero
  • 10.
    SUPERCLASSES E SUBCLASSES •Um retangulo HERDA DE um quadrilátero • Quadrilatero é uma SUPERCLASSE • Retangulo é uma SUBCLASSE • Um retangulo é um tipo específico de quadrilatero • MAS um quadrilatero NÃO É UM retangulo • Um quadrilatero PODER SER: • Um paralelogramo • Um quadrado • Etc
  • 11.
    SUPERCLASSES E SUBCLASSES •Superclasses são mais gerais • Subclasses são mais específicas • Cada objeto de SUBCLASSE é um objeto de sua SUPERCLASSE • Uma SUPERCLASSE pode ter várias SUBLCLASSES • Exemplo: • Uma superclasse VEÍCULO representa todos os veículos • Uma subclasse CARRO representa um subconjunto de veículo menor e mais específico
  • 12.
    SUPERCLASSES E SUBCLASSES •Relacionamentos de herança formam estruturas hierarquicas do tipo ARVORE • Há situações em que uma classe pode ser ao mesmo tempo uma subclasse e também uma superclasse • HIERARQUIA DE CLASSE = HIERARQUIA DE HERANÇA
  • 13.
  • 14.
  • 15.
    SUPERCLASSES E SUBCLASSES •EXEMPLO: • A leitura do diagrama é feita da seguinte forma: de baixo para cima, seguindo as setas: • Um Administrador é um membro do Corpo Docente • Um Professor é um membro do Corpo Docente • Um Corpo Docente é um membro de Empregado
  • 16.
    SUPERCLASSES E SUBCLASSES •EXEMPLO: • Um Funcionário é membro de Empregado • Um Empregado é membro da comunidade • Um Aluno é membro da comunidade • Um Graduado é membro da comunidade • Membro da Comunidade é a superclasse direta de Empregado, Aluno e Graduados
  • 17.
    SUPERCLASSES E SUBCLASSES •EXEMPLO: • Membro da Comunidade é a superclasse indireta de todas as outras subclasses no diagrama • Um administrador é um membro do corpo docente que é um membro de empregado que é um membro da comunidade
  • 18.
  • 19.
    SUPERCLASSES E SUBCLASSES •Nem todo relacionamento de classe é um relacionamento de herança • Relacionamento TEM UM: • As classes têm membros que são referencias a objetos de outras classes • Criam classes compondo classes existentes
  • 20.
    SUPERCLASSES E SUBCLASSES •EXEMPLO: • Classe empregado • Classe dataDeNascimento • Classe numeroDeTelefone • Um empregado é uma dataDeNascimento????? • Um empregado TEM UMA dataDeNascimento! • Um empregado é um numeroDeTelefone? • Um empregado TEM UM numeroDeTelefone!
  • 21.
    SUPERCLASSES E SUBCLASSES •Importante: • Objetos de superclasse não podem ser tratados como objetos de suas subclasses • Exemplo: • Todos os carros são veículos, mas nem todos os veículos são carros
  • 22.
    SUPERCLASSES E SUBCLASSES •Desvantagem da herança: • Uma subclassepode herdar métodos que ela não necessita ou que não deveria ter • Às vezes a subclasse precisa de uma versão personalizada do método • SOBRESCREVER: • A subclasse pode redefinir o método da superclasse com uma implementação mais adequada para ela (@OVERRIDE)
  • 23.
    MEMBROS PROTECTED • Membrospublic: • São acessíveis onde quer que o programa tenha uma referencia a um objeto dessa classe ou uma de suas subclasses • Membor private: • Só são acessíveis por dentro da própria classe • Membros private de uma superclasse NÃO SÃO HERDADOS pelas suas subclasses
  • 24.
    MEMBROS PROTECTED • MEMBROSPROTECTED: • Nível intermediário de acesso • Membros protected de uma SUPERCLASSE podem ser acessados por: • membros dessa SUPERCLASSE • membros de suas SUBCLASSES • membros de OUTRAS classes no mesmo PACOTE
  • 25.
    MEMBROS PROTECTED • Membrospublic e protected da SUPERCLASSE tornam-se membros public e protected da subclasse • PALAVRA CHAVE SUPER: • Quando um método da SUBCLASSE sobrescrever um método da SUPERCLASSE, o método da SUPERCLASSE pode ser acessado a partir da SUBCLASSE usando a palavra chave SUPER antes o nome de método da SUPERCLASSE e um separador de ponto
  • 26.
    RELACIONAMENTOS • PALAVRA CHAVEEXTENDS: • Usada para indicar que a classe herda de outra classe: • public class ClasseExemplo extends Object • public class Classe2 extends Classe1 • A classe exemplo herda da classe objeto • A classe2 herda da classe 1
  • 27.
    CLASSE OBJECT • Herançautilizada para criar classes de classes existentes • Cada classe Java herda uma classe existente – exceto a classe OBJECT (que não contem nenhum campo) • Cada classe Java herda direta ou indiretamente métodos de OBJECT. • Se uma classe Java não especificar que ela herda outra classe, a nova classe herda OBJECT implicitamente
  • 28.
    CLASSE OBJECT • Todae qualquer classe em Java é uma subclasse da classe OBJECT • É a superclasse de todas as classes • http://docs.oracle.com/javase/7/docs/api/
  • 29.
    Construtores em subclasses •Instanciar um objeto de SUBCLASSE inicia uma cadeia de chamadas de construtor; • O construtor de SUBCLASSE, invoca o construtor de sua SUPERCLASSE direta, antes de realizar suas próprias tarefas • Invocação implícita: chama o construtor padrão ou construtor sem argumentos • Invocação explícita: usa a palavra chave SUPER
  • 30.
    Construtores em subclasses •Se a SUPERCLASSE é derivada de outra classe, o construtor da SUPERCLASSE invoca o construtor da próxima classe no topo da hierarquia • O último construtor chamado na cadeia é sempre o construtor da classe OBJECT • O corpo do construtor de SUBCLASSE original termina a execução por último.
  • 31.
    Construtores em subclasses •O construtor de cada SUPERCLASSE manipula as variáveis de instância de SUPERCLASSE que o objeto de SUBCLASSE herda • Quando um programa cria um objeto da SUBCLASSE, o construtor da SUBCLASSE imediatamente chama o construtor da SUPERCLASSE
  • 32.
    Construtores em subclasses •O corpo do construtor da SUPERCLASSE executa para inicializar as variáveis de instância da SUPERCLASSE que fazem parte do objeto da SUBCLASSE •O corpo do construtor da SUBCLASSE, então, executa para inicializar variáveis de instância somente da SUBCLASSE
  • 33.
    Patentes de código •A herança permite que você patenteie seu código e os venda com as licenças apropriadas ou apenas disponibilizando para outros usuários em formato de bytecode • BYTECODE JAVA: é um formato de código intermediário entre o código fonte, o texto que o programador consegue manipular, e o código de máquina, que o computador consegue executar.
  • 34.
    Patentes de código Permiteportabilidade pois executa em qualquer plataforma computacional
  • 35.
    Patentes de código •A herança permite que o programador NÃO altere o código-fonte da SUPERCLASSE, mas permite que ele o utilize em sua classe proprietária • Classes proprietárias: são as classes desenvolvidas por desenvolvedores (por vocês – são classes personalizadas) • Herança preserva a integridade da SUPERCLASSE, portanto a sua SUBCLASSE não afeta o código-fonte da SUPERCLASSE
  • 36.
    Patentes de código •Um programador Java não precisa entender — e nem tomar conhecimento — dos bytecodes Java para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem.
  • 37.
    Patentes de código •Em seus projeto crie menos classes que fornecem funcionalidades mais substanciais, isso evitará problemas na utilização das classes • Muitas classes cria problema de gerenciamento e pode indicar mal uso de reutilização de software
  • 38.
    Patentes de código •Se SUBCLASSES tem mais funcionalidades do que precisam de fato, a memória e os recursos computacionais podem ser desperdiçados • Portanto, use herança com sabedoria! Herde apenas das SUPERCLASSES que fornecem as funcionalidades que de fato você precisa
  • 39.
    EXEMPLO 1 package br.com.exemploheranca; publicclass pessoa { String nome, idade, endereco = "R: Java ,501"; public void ImprimeNome() { System.out.println("o nome é:"); System.out.println("Endereco: " + endereco); } }
  • 40.
    EXEMPLO 1 package br.com.exemploheranca; publicclass fornecedor extends pessoa{ String cnpj; public void ImprimeNome() { System.out.println("O nome do fornecedor é : " + nome + "n Cnpj: " + cnpj); } }
  • 41.
    EXEMPLO 1 package br.com.exemploheranca; publicclass cliente extends pessoa { String cpf; public void ImprimeNome() { System.out.println("Nome do cliente é : " + nome + "n Nº CPF: " + cpf + "n Seu endereco :" + endereco); } }
  • 42.
    EXEMPLO 1 package br.com.exemploheranca; publicclass principal { public static void main(String[] args) { cliente c = new cliente(); c.nome = "Luiz"; c.cpf = "073.777.796-21"; c.ImprimeNome(); fornecedor f = new fornecedor(); f.nome = "Deltatronic"; f.cnpj = "073.856.9856.52-10"; f.ImprimeNome(); } }
  • 43.
  • 44.
    EXERCÍCIOS • Desenhe umahierarquia de herança para alunos universitários. Utilize ALUNO como superclasse da hierarquia, então herde ALUNO com as classes ALUNODEGRADUAÇÃO e ALUNOGRADUADO. Continue a estender a hierarquia o mais profundo que conseguir (vários níveis). Depois de desenhar a hierarquia, discuta os relacionamentos entre as classes. Em seguida, crie as classes e crie um programa Java que demonstre sua utilização.
  • 45.
    EXERCÍCIOS • Desenhe uma hierarquia de herança para QUADRILATERIO, TRAPEZIO,PARALELOGRAMO, RETANGULO e QUADRADO. Utilize QUADRILATERO como a superclasse da hierarquia. Faça a hierarquia o mais profundo que conseguir (com muitos níveis). Especifique as variáveis de instância e os métodos para cada classe. As variáveis de instância private de QUADRILATERO devem ser os pares x e y de coordenadas para os quatro ontos que delimitam o QUADRILATERO. Escreva um programa em Java que instancia os objetos de suas classes e gera saída da área de cada objeto – menos o QUADRILATERO.