mas se tirasse esse ;, o resultado seria “Other implementado”
M
matheusPJ
no no… hehea, o “;” é necessário ai, se tu tirar ele, ai sim vai dar erro, mais alguém se habilita??
J
Juliano_CarnielPJ
Não compila, pq a classe Other é uma interface, e deveria ser implementada, e não instanciada!
deveria estar la em
public class Teste2 implements Other
right?!
espero que sim =)
cya!
F
FelipePJ
se o ; ta certo, eu acho q compila e o resultado eh “Other implementado”…
acho q n tem problema nao em ser interface…
M
matheusPJ
hehaaeh, todo mundo errado! … hahaeh, jujo, esta sendo implementado, só q é uma classe interna anônima… não tem problema nenhum nisso… mais alguém tenta? :twisted:
V
vinciPJ
Compila e executa normalmente.
Saída: Other implementado
A Interface Other é implementada com uma classe interna de método anônima.
É isso mesmo? Não testei…
S
spierPJ
Deve dar erro de compilação, já que métodos de interfaces são implicitamente declarados como públicos, enquanto que na declaração
estamos tentando declarar doStuff() como private!!??
correto! não compila! … é uma tentativa de diminuir o acesso a visibilidade do método, de public pra default… tudo em uma interface é public implicitamente, Brainn, é preciso o “;” pois não deixa de ser uma instrução de atribuição…!
H
hilmilhoPJ
Ok, nem tinha reparado que estava “encurtando” a acessabilidade do método.
Eu não sabia que era possível criar um objeto dessa forma… interface tem construtor? não tem? seria implícito?
M
matheusPJ
interfaces não tem construtor…
D
DaviMCPJ
O default de um método em uma classe eh private enquanto q em uma interface eh public? Eh isso mesmo? … Eu pensava q em ambos era private.
M
matheusPJ
não Davi, o default de um método/variável de instancia em uma classe é default mesmo, hehehe, private é diferente de acesso default, e em interfaces sim, é public implicitamente…
V
vinciPJ
Só complementando…
Acesso defaut ou acesso de pacote é quando um atributo, método ou mesmo uma classe é visível apenas pelas classes do mesmo pacote. É um “público apenas para o pacote”.
F
fmartinsPJ
Boa questão!!!
sempre o compilador irá colocar public abstract em frente aos métodos
de uma interface, mesmo que vc naum coloque! e vc quando faz o overriden do metodo nao pode/deve dimuinuir a visibilidade do metodo da superclass!