Modificar: Abstract  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
truck1n
Java Ninja
[Avatar]
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline

Boa tarde galera,

estou com uma dúvida com o modificar abstract, estou lendo estudando o JAVA e estou com com umas dúvidas

essa é minha classe abstract, então sempre que tenho uma classe abstract tenho que ter pelo menos 1 metodo ou váriavel abstract, correto?



essa é minha classe que extende a classe abstract, então tenho que criar um metodo com o mesmo nome do metodo da classe abstract?



Estou meio confuso se alguem puder ajudar! =D

Get Rich Or Die Trying
[WWW] [MSN]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

  • Toda classe abstract tem que ter pelo menos um método abstrato.

  • Não é permitido instanciar objetos de uma classe abstrata (claro, pois existe pelo menos um método que não possui implementação, aquele que é abstrato)

  • Uma classe que estende uma classe abstrata, se esta não for abstrata também, deve forneceer a implementação do(s) método(s) abstrato(s), "sobrescrevendo" o(s) método(s) abstrato(s) herdado(s).

  • Se a classe que a extende também for abstrata, esta pode fornecer ou não implementação para os métodos herdados, sendo que a primeira clase concreta (não abstrata) que herdar esse hierarquia tem que obrigatóriamente fornecer a implementação dos métodos abstratos herdados.



  • Ajudou?

    Até mais!

    Seja educado. Agradeça quem te ajudou. Não custa nada.
    Dúvidas de Java? Utilize o fórum! Não respondo via MP.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
    "A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

    http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
    [WWW]
    truck1n
    Java Ninja
    [Avatar]
    Membro desde: 26/04/2006 11:41:05
    Mensagens: 296
    Localização: São Paulo
    Offline

    ajudou, sim agora eu estou tendando compreender ...


    Eu posso instaciar a classe mas nao os metodos pelo que eu estou entendendo, um exemplo é o JFrame eu instacio a classe mas nao instacio nenhum objetivo pq quando eu instanciei ele vem na Hierarquia da classe, correto?

    estamos caminhando! =D

    Get Rich Or Die Trying
    [WWW] [MSN]
    alberto_ribeiro
    JavaEvangelist
    [Avatar]

    Membro desde: 01/07/2005 11:15:19
    Mensagens: 351
    Localização: SP
    Offline



    você não pode instanciar nenhuma classe abstrata..... você pode instanciar uma classe concreta que extenda a classe abstrata para usar os métodos e não instaciar a classe abstrata diretamente.

    []'s

    entendeu ?

    Sun Certified Programmer for Java 1.5
    [Email] [MSN]
    davidbuzatto
    Moderador
    [Avatar]

    Membro desde: 07/08/2004 23:47:57
    Mensagens: 4013
    Localização: Vargem Grande do Sul - SP
    Offline

    Você só pode instanciar (criar objetos) de classes NÃO abstratas, ou seja classes concretas. Métodos não são instanciados, eles fazem parte de uma instância.

    E caso estes sejam estáticos estes pertencem a classe e não a instância, apesar de cada instância poder acessar normalmente o método estático de sua classe.

    Caso você não saiba, métodos estáticos são métodos que existem independentemente de existir algum objeto da classe a qual ele pertence.

    Instanciar = Criar = Criar um novo objeto = usar o operador new (na maioria dos casos )

    Digo na maioria dos casos pois para criar um objeto da classe String por exemplo, vc não precisa necessariamente usar um construtor explícito, bstante somente fazer String s = "algumaCoisa" q o compilador já faz o serviço para você.

    Até mais!

    Seja educado. Agradeça quem te ajudou. Não custa nada.
    Dúvidas de Java? Utilize o fórum! Não respondo via MP.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
    "A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

    http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
    [WWW]
    truck1n
    Java Ninja
    [Avatar]
    Membro desde: 26/04/2006 11:41:05
    Mensagens: 296
    Localização: São Paulo
    Offline

    ahhh compreendi,

    o unica objetivo da classe concreta é deixar as coisas semi prontas pelo que eu to entendendo...

    igual uma construção o cimento ja vem pronto nos caminhões

    uhmmmm compreendi, crio um classe Predio extendo ela para Construção que lá eu tenho o metodo cimento que já vem prontinho eu so preciso fazer algumas implementações?

    Pelo que to vendo tenho que estudar OO ? o que acham?

    Abraços!

    Get Rich Or Die Trying
    [WWW] [MSN]
    alberto_ribeiro
    JavaEvangelist
    [Avatar]

    Membro desde: 01/07/2005 11:15:19
    Mensagens: 351
    Localização: SP
    Offline

    seria ótimo estudar conceitos de OO, e falando a respeito do seu post: a classe abstrata ajuda você a definir seus objetos...

    []'s

    Sun Certified Programmer for Java 1.5
    [Email] [MSN]
    davidbuzatto
    Moderador
    [Avatar]

    Membro desde: 07/08/2004 23:47:57
    Mensagens: 4013
    Localização: Vargem Grande do Sul - SP
    Offline

    Hehehehe vc está confundindo os conceitos..

    Concreto = que pode ser criado
    Abstrato = modelo que deve ser seguido

    Hehehehehe é melhor estudar sim para fazer com que os conceitos fiquem mais claros... Aprender Java sem POO não é uma boa prática, pois como Java é uma linguagem OO é ineterssante que você saiba como tudo é feito e como as coisas funcionem.

    Num vai fazer que nem o pessoal do Delphi hein (a maioria é claro)... Programar estruturado numa linguagem OO...

    Falow!

    Seja educado. Agradeça quem te ajudou. Não custa nada.
    Dúvidas de Java? Utilize o fórum! Não respondo via MP.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
    "A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

    http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
    [WWW]
    truck1n
    Java Ninja
    [Avatar]
    Membro desde: 26/04/2006 11:41:05
    Mensagens: 296
    Localização: São Paulo
    Offline

    Compreendi.


    Você só pode instanciar (criar objetos) de classes NÃO abstratas, ou seja classes concretas. Métodos não são instanciados, eles fazem parte de uma instância.

    E caso estes sejam estáticos estes pertencem a classe e não a instância, apesar de cada instância poder acessar normalmente o método estático de sua classe.

    Caso você não saiba, métodos estáticos são métodos que existem independentemente de existir algum objeto da classe a qual ele pertence.

    Instanciar = Criar = Criar um novo objeto = usar o operador new (na maioria dos casos )

    Digo na maioria dos casos pois para criar um objeto da classe String por exemplo, vc não precisa necessariamente usar um construtor explícito, bstante somente fazer String s = "algumaCoisa" q o compilador já faz o serviço para você.

    Até mais!
    alberto_ribeiro
    Post 05/12/2006 16:42:25 Assunto: Re:Modificar: Abstract
    Code:

    você disse: "Eu posso instaciar a classe mas nao os metodos pelo que eu estou entendendo"



    você não pode instanciar nenhuma classe abstrata..... você pode instanciar uma classe concreta que extenda a classe abstrata para usar os métodos e não instaciar a classe abstrata diretamente.

    []'s

    entendeu ?


    Vlw to estudando aqui ai tem vezes que me aparece umas dúvidas! rs

    Vlw!

    então eu estou fazendo a coisa certa no meu código acima?

    Get Rich Or Die Trying
    [WWW] [MSN]
    alberto_ribeiro
    JavaEvangelist
    [Avatar]

    Membro desde: 01/07/2005 11:15:19
    Mensagens: 351
    Localização: SP
    Offline

    só uma coisinha nome de classe por padrão no Java inicia com letra em maiúsculo..

    abstract class Abs.....

    public class Recebe extends Abs....

    em uma classe abstrata procure colocar somente o que será abstrato mesmo e na classe que extender ela você adiciona os outros métodos...
    particulamente eu prefiro assim... mas alguém pode dizer outro ponto de vista ????

    []'s

    Sun Certified Programmer for Java 1.5
    [Email] [MSN]
    truck1n
    Java Ninja
    [Avatar]
    Membro desde: 26/04/2006 11:41:05
    Mensagens: 296
    Localização: São Paulo
    Offline

    alberto_ribeiro, Seguindo suas dicas da uma olhada agora!

    Classe Abstrata


    Classe Main



    vlw galera, agora vou dar uma olhada lá no mundo OO

    para ver umas dicas!!! mas já deu uma clareada! vlwww

    Get Rich Or Die Trying
    [WWW] [MSN]
    Sami Koivu
    Virtual Machine Man
    [Avatar]

    Membro desde: 16/09/2004 09:49:27
    Mensagens: 574
    Localização: Curitiba-PR
    Offline

    davidbuzatto wrote:
  • Toda classe abstract tem que ter pelo menos um método abstrato.



  • Na verdade, é perfeitamente possível criar uma classe abstrata sem nenhum método abstrato - se bem que não consigo imaginar qual seria a utilidade disso.

    (Slightly) Random Broken Thoughts on Java Security
    [Email] [WWW] [Yahoo!] [MSN]
    truck1n
    Java Ninja
    [Avatar]
    Membro desde: 26/04/2006 11:41:05
    Mensagens: 296
    Localização: São Paulo
    Offline

    Compreendido!! agora é como se fosse uma receita de bolo!!

    uma classe abstract parecido com uma Interface !?!?!

    respondo hj a noite.. to indo para a facul prova de matemática to ferrado!

    Get Rich Or Die Trying
    [WWW] [MSN]
    davidbuzatto
    Moderador
    [Avatar]

    Membro desde: 07/08/2004 23:47:57
    Mensagens: 4013
    Localização: Vargem Grande do Sul - SP
    Offline

    Nossa, num tinha me atentado a isso Sami! Valeu pelo esclarecimento

    truck1n, Você pode pensar em uma interface como se fosse uma classe 100% abstrata.

    Seja educado. Agradeça quem te ajudou. Não custa nada.
    Dúvidas de Java? Utilize o fórum! Não respondo via MP.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
    "A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

    http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
    [WWW]
     
    Índice dos Fóruns » Java Básico
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team