Srs, boa tarde!
No código abaixo estou com dúvida no entendimento de encapsulamento nas linhas 10 e 7. Sabendo que tellIt é uma referência ao objeto Tell() que por sua vez herda a classe Speak e implementa a interface Truth. Quando executamos "((Truth)tellIt)" o resultado dessa expressão é Truth ou tellIt? Faço o mesmo questionamento para a linha 7. Obrigado.
package codigo;
interface Truth {
public void tellItLikeItIs();
}
class Speak{}
class Tell extends Speak implements Truth {
public void tellItLikeItIs() {
System.out.println("Right on!");
}
}
public class A{
public static void main(String[] args){
Speak speakIT = new Tell(); /* Line 3 */
Tell tellIt = new Tell(); /* Line 4 */
tellIt.tellItLikeItIs();/* Line 8 */
((Truth)tellIt).tellItLikeItIs(); /* Line 10 */
((Truth)speakIt).tellItLikeItIs(); /* Line 7 */
}
}