Результаты прохождения теста ООП в Java пользователем ilya201177

Результат прохождения теста "ООП в Java" - Пройден

+62

  • Кто проходил: ilya201177
  • Дата прохождения: 01.02.2019
Какой результат компиляции и выполнения программы?
public class Okey implements A.B{ 
   interface C{ 
       void stop(); 
   } 
   public int goTo(){ 
          System.out.println("Идем гулять в парк"); 
      return 5; 
   } 
   public static void main(String[] args) { 
               Okey o=new Okey(); 
       o.goTo(); 
   } 
} 
interface A{ 
   void go(); 
   interface B{ 
       int goTo(); 
   } 
}
Ваши ответы
Идем гулять в парк
Какой принцип лежит в основе связывания "метод-вызов"?
Ваши ответы
позднее связывание за исключением методов с модификатором final, static или private
Выберите все утверждения, которые верны по отношению к данному коду:
1: public interface Movable { 
2:       int step = 10; 
3:       void moveMe(); 
4: } 
 
5: class Circle implements Movable { 
6:      void moveMe(){ 
7:        step = 20; 
8:        System.out.println("Moving Circle with step="+step); 
9:      } 
 
10:      public static void main(String[] args) { 
11:        Movable c = new Circle(); 
12:        c.moveMe(); 
13:    } 
14: } 
Ваши ответы
Ошибка компиляции в строке 6
Ошибка компиляции в строке 7
Объяснение:

Все методы интерфейса неявно public abstract, переменные - final static. Указывать это явно необязательно. В строке 6 класс Circle пытается переопределить public метод с уменьшением области видимости. В строке 7 - назначить новое значение final переменной.

Что выведет данный код?
import java.util.LinkedHashSet; 
import java.util.Set; 
public class MyClass 
 
{ 
   public static void main(String[] args) 
   {  
       Set<String> stringSet = new LinkedHashSet<String>(); 
       stringSet.add("2"); 
       stringSet.add("1"); 
       stringSet.add("2"); 
       stringSet.add("4"); 
       stringSet.add("3"); 
       stringSet.add("5"); 
       for( String entry : stringSet ) 
           System.out.print( entry ); 
 
   } 
 
}
Ваши ответы
21435
Объяснение:

Правильный ответ 21435.
Многие могут задуматься, что при попытке добавлении существующего элемента в LinkedHashSet существует 2 варианта развития событий. Первый вариант - существующий элемент удаляется из коллекции, а в конец коллекции добавляется (этот же) элемент. Второй вариант - коллекция не изменяется и все элементы остаются на своих местах. В LinkedHashSet реализован второй вариант.

Как можно переопределить метод meth2() в классе Sub?
abstract class Base { 
   public abstract void meth1(); 
   public void meth2() { } 
} 
 
abstract class Sub extends Base { 
   public void meth1() { } 
   ... // переопределенный метод 
} 
Ваши ответы
public abstract void meth2();
Какое утверждение верно по отношению к данному коду?
class A<T1, T2>{        //1 
    public <T1> fun(){} //2 
    public <T2> fun(){} //3 
}
Ваши ответы
Код не компилируется из-за строки 2 и 3
Даны интерфейсы:
interface A { 
   Integer a(); 
} 
interface B { 
   Number a(); 
} 
 
Какие фрагменты кода из перечисленных успешно скомпилируются?
Ваши ответы
class C implements A, B { 
   public Integer a() { 
       return null; 
   } 
} 
abstract class C implements A, B { 
} 
Скомпилируется ли следующий код ?
class X extends Exception{} 
class Y extends X{} 
class C{ 
   void doSomething() throws Y{} 
} 
class D extends C{ 
   void doSomething() throws Y{} 
} 
Ваши ответы
Да
Что выведет следующий код ?
class Parent{ 
   static int x = 1; 
   public Parent(){ 
       x += 2; 
   } 
} 
class Child extends Parent{ 
   public Child(){ 
       x += 1; 
   } 
 
   public static void main(String[] args) { 
       Child c = new Child(); 
       System.out.println(x); 
   } 
} 
Ваши ответы
4
Что будет выведено после выполнения следующего кода:
package test; 
 
public class LinkageTest{ 
 
   public static class Parent{ 
 
       public void test(){ 
           System.out.println("parent::test"); 
       } 
   } 
 
   public static class Child extends Parent{ 
 
       public void test(){ 
           System.out.println("child::test"); 
       } 
   } 
 
   public static class Tester{ 
 
       public void test(Parent obj){ 
           System.out.println("Testing parent..."); 
           obj.test(); 
       } 
 
       public void test(Child obj){ 
           System.out.println("Testing child..."); 
           obj.test(); 
       } 
   } 
 
   public static void main(String[] args){ 
       Parent obj = new Child(); 
       Tester t = new Tester(); 
       t.test(obj); 
   } 
} 
Ваши ответы
Testing parent... child::test
Объяснение:

Раннее связывание, выполняемое на этапе компиляции, а позднее - во время исполнения.