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

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

+50

  • Кто проходил: ilya201177
  • Дата прохождения: 30.01.2019
Выберите правильный результат выполнения кода:
class A { } 
class B extends A { } 
 
public class Main { 
   public static void main (String [] args) { 
       A a = new B(); 
       B b = (B) a; 
       System.out.println(a == b); 
   } 
} 
Ваши ответы
true
Что произойдёт при попытке компиляции следующего кода:
class A extends B {} 
class B extends C {} 
class C extends A {} 
Ваши ответы
Ошибка компиляции
Объяснение:

Компилятор обнаружит, что класс A является своим наследником, и произойдёт ошибка компиляции.

Выберите все утверждения, которые верны по отношению к данному коду:
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 переменной.

Предположим, что класс В наследует класс А. Какие утверждения обязательно верны (укажите все подходящие варианты)?
Ваши ответы
если класс А имел статический метод, то метод в классе B с той же сигнатурой тоже должен быть статическим
Объяснение:

3 и 5 - не обязательны, 1 и 4 - не допускают наследование

Что <u>позволяет</u> реализовать множественное наследование в Java?
Ваши ответы
интерфейсы
Какое утверждение верно по отношению к данному коду?
class A<T1, T2>{        //1 
    public <T1> fun(){} //2 
    public <T2> fun(){} //3 
}
Ваши ответы
Код не компилируется из-за строки 2 и 3
Скомпилируется ли следующий код ?
class A{  
     public Single method(){ 
         return new Single();  
         } 
     } 
 
 class Single extends A{ 
     public A method() { 
         return new Single(); 
         }  
     } 
Ваши ответы
Нет
Какой результат компиляции и выполнения данного кода?
public class Test { 
   public static void main(String... args) { 
       A a = new C(); 
       a.m1(); 
       a.m2(); 
   } 
} 
 
abstract class A { 
   public void m1() { 
       System.out.println("m1 from A class"); 
   } 
   public abstract void m2(); 
} 
 
abstract class B extends A { 
   public abstract void m1(); 
} 
 
class C extends B { 
   public void m2() { 
       System.out.println("m2 from C class"); 
   } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

Класс C не реализовывает абстрактный метод m1().
В классе А он реализован,но в классе B он переопределен,как абстрактный,поэтому Ошибка компиляции.

Что будет в результате компиляции и выполнения данного кода?
class Small { 
   public Small() { 
       System.out.print("a "); 
       super(); 
   } 
} 
 
class Small2 extends Small { 
   public Small2() { 
       System.out.print("b "); 
   } 
} 
 
class Small3 extends Small2 { 
   public Small3() { 
       System.out.print("c "); 
   } 
} 
 
public class Test {      
   public static void main(String args[]) { 
       new Small3(); 
   } 
} 
Ваши ответы
Ошибка компиляции
Скомпилируется ли следующий код ?
class X extends Exception{} 
class Y extends X{} 
class C{ 
   void doSomething() throws Y{} 
} 
class D extends C{ 
   void doSomething() throws Y{} 
} 
Ваши ответы
Нет