Classe Abstrata

Ae galera blz???

É o seguinte tenho um trabalho para fazer, que eu tenho que criar uma classe abstrata com varios metodos.

E depois criar uma classe extends e que use a classe abstrata, porem nao tenho ideia de como fazer isso, queria saber se é possivel ser postado algum exemplo de classe abstrada com uma classe extends???

valeuuiuuuu

flws

abstract class TesteAbstract {

    private String teste = "Testando";

    public abstract String metodoPublico();

    protected abstract int metodoProtected();

    abstract void metodoDefault();

    public void metodoTeste() {
        System.out.println(teste);
    }
}

class Teste extends TesteAbstract {
    public String metodoPublico() {
        return "Metodo Publico";
    }

    protected int metodoProtected() {
        return 2 * 3 * 4 * 5;
    }

    void metodoDefault() {
        System.out.println("Metodo default");
    }

    public static void main(String[] args) {
        TesteAbstract ta = new Teste();
        System.out.println(ta.metodoPublico());
        System.out.println(ta.metodoProtected());
        ta.metodoDefault();
        ta.metodoTeste();
    }
}

Espero ter ajudado…
Flw…

Aproveitando o topico…

Qual a diferença d uma classe abstract para uma public por exemplo?

Grato…

Theze

Uma classe abstrata pode ser public, quando você coloca uma classe sem o public ela fica somente visível a nível de pacotes e você pode colocar essa classe em um arquivo com o nome diferente da mesma. Por exemplo, vamos supor que você tenha a classe Teste (public) ela deve estar em um arquivo Teste.java, agora que você tenha a classe TesteAbstract (abstrata ou não, mas sem o public) você pode colocar essa classe no arquivo TesteAbstract.java, ou no Teste.java ou QualquerCoisaQueVoceQueria.java.

Espero ter te ajudado…
Flw…

Se eu não colocar o public na declaracao da classe posso dar ao arquivo o nome q eu quizer, é isso?

E o que é uma classe abstract?

Grato…

Theze

Além dela só ser visível para as classes do mesmo pacote ela também pode ser colocada em outro .java.

Uma classe abstrata é uma classe como qualquer outra, que NÃO pode ser instanciada e que pode possuir métodos sem implementação (métodos abstratos). Estes métodos devem ser implementados por alguma classe que extender essa classe abstrata.

Flw…

Valeu…

Theze

só complementando…
se voce tiver uma classe que esteja estendendo essa classe abstrata e essa classe nao conter os metodos abstratos dará um erro de compilação…lembrando que cada classe pode implementar esses metodos de forma diferente como explicou nosso colega!
voce pode simplesmente colocar a assinatura do metodo e () { } sem problemas!!

blz?!

Falou!!!

Grato pela atenção…
E foi mal ai corvao por me meter no teu topico…

Valeu…

Theze…

Grato pela atenção…
E foi mal ai corvao por me meter no teu topico…

Valeu…

Theze…

E se uma classe contiver pelo menos um método abstrato essa classe deverá ser obrigatoriamente declarada abstrata, não podendo ser instanciada, apenas herdada! Por favor me corrijam se eu estiver errado.

[]'s
Fred

Correto, para ter algum método abstrato ela necessariamente precisa ser abstrata, e se for abstrata não pode ser instanciada. :wink: