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!
}
}
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 …