Проверьте свои знания о наследовании в программировании на языке 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)».