A respeito dos conceitos de programação orientada a objetos aplicados à linguagem Java, são feitas as seguintes afirmações:
I) Se um objeto da classe C1 possui referência para outro objeto da classe C1, o primeiro objeto pode acessar todos os atributos e métodos do segundo objeto, mesmo os privados.
II) Se a classe C1 é derivada da classe C2, pode-se considerar que o objeto da classe C1 “é” um objeto da classe C2.
III) Se a classe C1 é derivada da classe C2, pode-se considerar que o objeto da classe C2 “é” um objeto da classe C1.
IV) O polimorfismo facilita a extensibilidade de um programa orientado a objetos, permitindo que novas subclasses sejam adicionadas a uma hierarquia de herança com pouca ou nenhuma alteração nas partes gerais, desde que o programa tenha sido projetado para processar genericamente as superclasses desta hierarquia.
V) Modificadores de acesso em atributos e métodos de uma classe C permitem que se ocultem informações sobre a estrutura de atributos da classe C, porém mantendo os métodos da classe C sempre acessíveis a partir de outros objetos que possuam referência para objetos da classe C.
Estão corretas apenas: