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

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

+37

  • Кто проходил: ilya201177
  • Дата прохождения: 03.12.2018
Какой результат компиляции и выполнения программы?
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(); 
   } 
}
Ваши ответы
Идем гулять в парк
Что будет в результате компиляции и выполнения данного кода?
public class Testing { 
   private int value = 1; 
 
   public int getValue() { 
       return value; 
   } 
 
   public void changeVal(int value) { 
       value = value; 
   } 
 
   public static void main(String args[]) { 
       int a = 2; 
       Testing c = new Testing(); 
       c.changeVal(a); 
       System.out.print(c.getValue()); 
   } 
} 
Ваши ответы
1
Выберите единственный верный результат компиляции и выполнения кода.
class Base { 
       Base(int i) { 
            System.out.println("Base"); 
       } 
} 
class Derived extends Base { 
       public static void main(String[] argv) { 
             Derived d = new Derived(); 
       } 
       void Derived() { 
             System.out.println("Derived"); 
       } 
} 
Ваши ответы
Ошибка компиляции.
Каким будет результат компиляции и выполнения данного кода:
class Base { 
   private int i = 5; 
 
   public Base() { 
       System.out.println("i = " + getI()); 
   } 
 
   public int getI() { 
       return i; 
   } 
} 
 
public class Test extends Base { 
   private static int i = 10; 
 
   public Test() { 
       System.out.println("i = " + super.getI()); 
   } 
 
   public int getI() { 
       return i; 
   } 
 
   public static void main(String[] args) { 
       Test test = new Test(); 
   } 
} 
Ваши ответы
i = 10
i = 5
Объяснение:

При создании экземпляра класса Test неявно вызывается конструктор суперкласса Base(). В нём происходит вызов метода getI(). Этот метод перекрыт в Test и возвращает i=10. Потом выполняется непосредственно конструктор Test(), в котором происходит вызов метода getI() из суперкласса (Base), который и возвращает i=5.

Какие фрагменты кода будут компилироваться?
interface Base { 
   boolean m1(); 
   byte m2(short s); 
} 
Ваши ответы
abstract class Class2 implements Base { 
   public boolean m1() { return (true); } 
} 
abstract class Class2 implements Base {} 
Объяснение:

Методы интерфейсов по умолчанию public, следовательно методы класса реализующие методы интерфейсов не должны сужать видимость. Абстрактные классы не обязаны реализовать методы интерфейса.

Абстрактный класс и интерфейс - это типы с абстрактным контрактом. Тем не менее между ними имеются существенные различия.<br><br> Какие из следующих утверждений верны для Java 8 ?
Ваши ответы
Абстрактный класс может содержать protected и static члены, а интерфейс нет.
Скомпилируется ли следующий код ?
class A{  
     public Single method(){ 
         return new Single();  
         } 
     } 
 
 class Single extends A{ 
     public A method() { 
         return new Single(); 
         }  
     } 
Ваши ответы
Нет
Какие операции со ссылочными переменными в теле метода main() не приведут к ошибке компиляции?
class A {} 
class B extends A {} 
class C extends B {} 
public class MyClass { 
   public static void main (String args[]) { 
       A x1 = new A(); 
       B x2 = new B(); 
       C x3 = new C();} 
} 
Ваши ответы
x2 = x3;
x1 = x3;
x1 = x2;
Что будет напечатано на экран в результате компиляции и выполнения кода?
public class Test { 
   public static void main(String[] args){ 
       A a = new B(); 
       a.test(5); 
   } 
} 
class A { 
   public void test(Object obj){ 
       System.out.println("Object"); 
   } 
} 
class B extends A { 
   public void test(Integer obj){ 
       System.out.println("Integer"); 
   } 
} 
Ваши ответы
Объяснение:

Вызов метода test не является полиморфным, потому что метод public void test(Object obj) не переопределён, а всего лишь перегружен в потомке.

В каких случаях выпадает ClassCastException, указать все возможные варианты.
class Go {  
     public static void main(String[] args) { 
         A a = new A();  
         Single s = new Single(); 
         Double d = new Double(); 
         d = (Double)a; // 1  
         d = (Double)s; // 2  
         s = (Single)a; // 3  
         s = (Single)d; // 4 
         a = (A)d; // 5  
         a = (A)s; // 6  
         } 
         }  
 class A{  
 
 } class Single extends A{  
 
 } class Double extends Single{ 
 
 }