Викторина по наследованию в Java

Проверьте свои знания о наследовании в программировании на языке Java с помощью нашей викторины. К каждому вопросу прилагается правильный ответ с кратким объяснением.

1. Что такое наследование в Java?

A. Это процесс, в котором один класс приобретает свойства (поля) и поведение (методы) другого класса.
B. Это процесс создания нового класса с помощью метода main().
C. Это техника создания объектов в Java.
D. Это специальный термин для импорта пакетов в Java.

Ответ:
A. Это процесс, в котором один класс приобретает свойства (поля) и поведение (методы) другого класса.

Объяснение:
Наследование в Java – это механизм, при котором один объект приобретает свойства и поведение родительского объекта. Он является важной частью OOP ( объектно-ориентированного программирования) и позволяет повторно использовать код и переопределять методы.

2. Какое ключевое слово используется для наследования в Java?

A. new
B. super
C. extends
D. this

Ответ:
C. extends

Объяснение:
Для наследования в Java используется ключевое слово extends.

3. Может ли дочерний класс наследовать конструкторы своего родительского класса в Java?

A. Да
B. Нет

Ответ:
B. Нет

Объяснение:
В Java дочерний класс не может наследовать конструктор своего родительского класса.

4. Что такое подкласс в Java? 

A. Класс, который наследуется от другого класса
B. Класс, от которого наследуются
C. Последний класс в цепочке наследования
D. Ничего из вышеперечисленного

Ответ:
A. Класс, который наследуется от другого класса

Объяснение:
Подкласс или дочерний класс – это класс, который наследует свойства другого класса.

5. Что является родительским классом всех классов в Java?

A. Object
B. String
C. Class
D. System

Ответ:
A. Object

Объяснение:
В Java Object является родительским классом для всех классов.

6. Можно ли выполнить множественное наследование в Java?

A. Да
B. Нет

Ответ:
B. Нет

Объяснение:
Java не поддерживает множественное наследование классов.

7. Каково назначение ключевого слова ‘super’ в Java? 

A. Вызов конструктора родительского класса
B. Вызов метода дочернего класса
C. Создание нового экземпляра класса
D. Определение статического метода

Ответ:
A. Вызов конструктора родительского класса

Объяснение:
Ключевое слово super в Java используется для вызова конструкторов и методов родительского класса.

8. Может ли подкласс наследовать приватные поля и методы своего суперкласса? 

A. Да
B. Нет

Ответ:
B. Нет

Объяснение:
В Java подкласс не может наследовать приватные поля или методы своего суперкласса.

9. Что такое многоуровневое наследование в Java?

A. Класс наследует два или более класса
B. Два или более класса наследуют один и тот же класс
C. Класс наследует другой класс, который также наследуется от другого класса
D. Все вышеперечисленное

Ответ:
C. Класс наследует другой класс, который также наследуется от другого класса

Объяснение:
Многоуровневое наследование возникает, когда класс наследует другой класс, который, в свою очередь, также наследуется от другого класса.

10. Можно ли использовать интерфейсы для достижения множественного наследования в Java? 

A. Да
B. Нет

Ответ:
A. Да

Объяснение:
Да, интерфейсы можно использовать для достижения множественного наследования в Java.

11. Можно ли в Java переопределить статический метод? 

A. Да, мы можем переопределить статический метод точно так же, как и другие методы класса.
B. Нет, статические методы нельзя переопределять, потому что они принадлежат классу, а не объекту.
C. Это зависит от того, объявлен ли статический метод как final.
D. Это зависит от модификатора доступа статического метода.

Ответ:
B. Нет, статические методы нельзя переопределять, потому что они принадлежат классу, а не объекту.

Объяснение:
В Java статический метод привязан к классу, а не к конкретному экземпляру. Следовательно, он не является частью состояния объекта и не принимает участие в полиморфизме. Таким образом, его нельзя переопределять.

12. Что выведет следующая программа на языке Java?

class Grandparent {
    public void print() {
        System.out.println("Grandparent's Print()");
    }
}

class Parent extends Grandparent { }

class Child extends Parent { }

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.print();
    }
}

A. “Child’s Print()” 
B. “Parent’s Print()” 
C. “Grandparent’s Print()” 
D. Compilation error 

Ответ:
C. “Grandparent’s Print()” 

Объяснение:
В Java подкласс наследует все члены (поля, методы и вложенные классы) от своего суперкласса. Здесь класс Child косвенно наследует метод print() от класса Grandparent через класс Parent. Поэтому он может вызывать метод print().

13. Каким будет вывод следующей программы?

class First
{
    static void staticMethod()
    {
        System.out.println("Static Method");
    }
}

public class MainClass
{
    public static void main(String[] args)
    {
        First first = null;

        first.staticMethod();
    }
}

а) Static Method
b) NullPointerException
с) Compile-time error
d) Runtime error

Ответ:
а) Static Method

Объяснение:
Представленный Java-код скомпилируется и успешно выполнится без каких-либо исключений. Однако при вызове статического метода не требуется создание экземпляра класса. Поэтому вы можете вызвать статический метод staticMethod() напрямую из класса First.

14. Что выведет следующая программа на языке Java? 

class ClassOne
{
    int variableOne = 10;
}

class ClassTwo extends ClassOne
{
    int variableOne = 20;
}

public class Main
{
    public static void main(String[] args)
    {
        ClassOne objOne = new ClassTwo();

        System.out.println(objOne.variableOne);
    }
}

A) 10
B) 20
C) 30
D) Код не скомпилируется

Ответ:
A) 10

Объяснение:
В Java поля не переопределяются, как методы. Если в подклассе есть поле, которое имеет то же имя, что и поле в суперклассе, то эти два поля считаются разными. Они не переопределяют друг друга. Вывод этой программы равен 10, потому что доступ к переменным класса будет осуществляться именно через тип ссылки (ClassOne), а не через тип объекта (ClassTwo).

Перевод статьи «Java Inheritance Quiz – Multiple Choice Questions (MCQ)».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *