Static herdado

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

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

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

protected static void … () { }

nao serve?

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

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.

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 …