Static herdado

6 respostas
smota

Olá Pessoal,

duvida rapida … uma variavel estatica em uma superclasse (abstrata) sera compartilhada por todos os objetos de suas sub-classes?

O que eu queria mesmo eh que nao … q seja estatico mas soh no escopo da sub-classe mas ainda declarando na superclasse :shock:

Valeus

6 Respostas

C

mas se ela for estatica ela não fica “disponível” pra “todo mundo”?

Rafael_Nunes

Bem, uma subclasse “é” uma superclasse, ou seja, ela vai herdar para todos seus componentes as variáveis de instância da superclasse.

maxguzenski

protected static void … () { }

nao serve?

Rafael_Nunes

Mesmo com protected ele vai continuar acessível nos objetos da subclasse, isto porque a subclasse “é” uma superclasse.

maxguzenski

QQ VOCES ESTAO VIAJANDO!!! MUITA CERVEJA NO ANO NOVO???
OU EU TO ENTENDENDO MUITO MAL A PERGUNTA?

:evil:

1º uma subclasse NAO É uma superclasse, é uma extensão (conhece extends??), como tal, tem os mesmos atributos (salvo privates) da classe pai, mas as suas proprias.
quando voce faz “PAI p = new FILHA()”, voce nao tem a classe PAI, voce tem a classe FILHA!, mas so encherga os metodos que tem em pai mas com seus “overrides” aplicados.

2º estático != variavel_de_instancia

3º se um comando é PROTECTED (qualquer atribuito… leia-se METODOS e/ou VARIAVEIS) esse atributo so pode ser usado POR ELE MESMO ou PELA CLASSE FILHAS ou PELA CLASSE NO MESMO PACOTE! e por mais niguem!

//file 1
package teste1;

public class PAI {
    public static void teste1() { 
        System.out.println("PUBLIC");
    }
    protected static void teste2() {  
        System.out.println("PROTECTED");
    }
}


public class FILHA extends PAI {
}

//file 2
package teste2;

import teste1;

class meuTesteDeProtected {
    public static void main(String[] args) {
        FILHA.teste1(); // OK!
        FILHA.teste2(); // ERRO!
    }
}

fim, resolvido a questão.

smota

uheheheh eh o negocio descambou mesmo.

Eu to procurando um jeito indolor de fingir que o estatico de uma classe pai seja estatico no escopo das instancias da classe filho apenas :drinking:

Pq tenho uma propriedade em vaaaarias classes que eh estatica, mas alguns metodos sao identicos em todas, soh que trabalham em cima dessa variavel estatica, por hora soh no CTRL+C/CTRL+V mesmo …

Criado 8 de janeiro de 2004
Ultima resposta 8 de jan. de 2004
Respostas 6
Participantes 4