Может ли обычный класс реализовать несколько интерфейсов?
Я знаю, что возможно множественное наследование между интерфейсами, например:
public interface C extends A,B {...} //Where A, B and C are Interfaces
Но возможно ли иметь обычный класс, наследуемый от нескольких интерфейсов, например так:
public class A implements C,D {...} //Where A is a Class and C and D are interfaces
Ответы
Ответ 1
Класс Java может распространять только один родительский класс. Не допускается множественное наследование (extends
). Однако интерфейсы не являются классами, и класс может реализовать более одного интерфейса.
Родительские интерфейсы объявляются в списке, разделенном запятыми, после ключевого слова implements
.
В заключение, да, можно сделать:
public class A implements C,D {...}
Ответ 2
public class A реализует C, D {...} valid
это способ реализовать множественную наследование в java
Ответ 3
Одним словом - да.
Фактически, многие классы в JDK реализуют несколько интерфейсов. Например, ArrayList
реализует List
, RandomAccess
, Cloneable
и Serializable
.
Ответ 4
Конечно... Почти все классы реализуют несколько интерфейсов. На любой странице Java-документации по Oracle у вас есть подразделение под названием "Все реализованные интерфейсы".
Здесь пример класса Date
.
Ответ 5
Да, это возможно. Это улов: java не поддерживает множественное наследование, т.е. Класс не может распространять более одного класса. Однако класс может реализовывать несколько интерфейсов.
Ответ 6
Интерфейс может расширять другие интерфейсы. Также интерфейс не может реализовать любой другой интерфейс. Когда дело доходит до класса, он может расширять еще один класс и реализовывать любое количество интерфейсов.
class A extends B implements C,D{...}