Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FCC 2013

ProgramaçãoLinguagens de programação
Código
fc002022
Banca
FCC
Órgão
DPE-SP
Ano
2013
Nível
Médio
Cargo
Programador de computador
Analise o código a seguir retirado de uma aplicação desenvolvida com C#: interface IDimensions { float Length(); float Width(); } class Box : IDimensions { float lengthInches; float widthInches; public Box(float length, float width) { lengthInches = length; widthInches = width; } float IDimensions.Length() { return lengthInches; } float IDimensions.Width() { return widthInches; } public static void Main() { Box myBox = new Box(30.0f, 20.0f); IDimensions myDimensions = (IDimensions) myBox; System.Console.WriteLine("Length: {0}", myBox.Length()); System.Console.WriteLine("Width: {0}", myDimensions.Width()); } } Sobre o código apresentado é correto afirmar que a instrução
  1. ASystem.Console.WriteLine("Width: {0}", myDimensions.Width()); produzirá um erro de compilação porque um membro de uma interface que é explicitamente implementado não pode ser acessado a partir de uma instância da interface, mas apenas através de uma instância da classe que implementa essa interface.
  2. BBox myBox = new Box(30.0f, 20.0f); produzirá um erro de compilação, pois na instância do objeto myBox da classe Box, são passados dois parâmetros para o construtor da classe, porém, os valores desses parâmetros devem ser números reais, sem a letra f após os valores.
  3. CIDimensions myDimensions = (IDimensions) myBox; produzirá um erro de compilação, pois não pode haver casting na conversão de um objeto de um tipo de classe para seu tipo de interface quando essa classe implementa a interface.
  4. DSystem.Console.WriteLine("Length: {0}", myBox.Length()); produzirá um erro de compilação porque um membro de uma interface que é explicitamente implementado não pode ser acessado a partir de uma instância de classe, mas apenas através de uma instância da interface.
  5. Eclass Box : IDimensions está incorreta e produzirá um erro de compilação, pois assim como na linguagem Java, para indicar que uma classe implementa uma interface utiliza-se a palavra-chave implements.
Revelar gabarito e comentário

GabaritoD — System.Console.WriteLine("Length: {0}", myBox.Length()); produzirá um erro de compilação porque um membro de uma interface que é explicitamente implementado não pode ser acessado a partir de uma instância de classe, mas apenas através de uma instância da interface.

Link permanente: /questoes/fc002022