Olá pessoal, bom dia!
Tenho noção do significado de private e public, porem nao consegui entender a utilidade de protected.
Gostaria de saber em detalhes qual a finalidade e com exemplos.
Desde já agradeço pelos os esclarecimentos.
Atributos ou métodos declarados como protected são acessíveis somente nas classes filhas e nas classes de mesmo pacote da classe que possui o atributo/método protected.
Exemplo:
[code]public class A {
public A() {}
protected void doSomething() {}
}
public class B extends A {
public B() {}
public void run() {
doSomething();
}
}[/code]
Você não conseguirá executar o método doSomething() de outra classe que não seja B e que não seja filha de A ou esteja no mesmo pacote de A.
Uma dúvida.
Vamos supor que eu possuo uma Classe chamada C e que é filha da Classe B. A Classe C terá acesso ao metodo: protected void doSomething() ?
[quote=biro]Atributos ou métodos declarados como protected são acessíveis somente nas classes filhas e nas classes de mesmo pacote da classe que possui o atributo/método protected.
Exemplo:
[code]public class A {
public A() {}
protected void doSomething() {}
}
public class B extends A {
public B() {}
public void run() {
doSomething();
}
}[/code]
Você não conseguirá executar o método doSomething() de outra classe que não seja B e que não seja filha de A ou esteja no mesmo pacote de A.[/quote]
sim
sim sim…
Se C é subclasse de B. Logo, também será subclasse de A.
=P
Desculpe a ignorancia, mas teria como mostrar na UML a classe que não terá ou teria acesso ao metodo protectec da classe A ?
No caso da Classe A todas as classes terão acesso ao metodo protected, pois todas irão erdar os atributos, metodos, correto?
[quote=biro]sim sim…
Se C é subclasse de B. Logo, também será subclasse de A.
=P[/quote]
o protected quer dizer q o metodo ou classe é publica para as classes do mesmo pacote.
Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?
[quote=linhorj]Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?
sim
Valeu pessoal pelos os esclarecimentos,
Abraços
[quote=JJjava][quote=linhorj]Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?
sim[/quote]