Может ли обычный класс реализовать несколько интерфейсов?

Я знаю, что возможны множественные наследования между интерфейсами, например:

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

6 ответов


класс Java может расширить только один родительский класс. Множественное наследование (extends) Не допускается. Однако интерфейсы-это не классы, А класс может реализовать более одного интерфейса.

родительские интерфейсы объявляются в списке, разделенном запятыми, после implements ключевое слово.

В заключение да, можно сделать:

public class A implements C,D {...}

public class a реализует C, D {...} допустимые значения

это способ реализовать множественное inheritence в Java


одним словом - да. На самом деле, многие классы в JDK реализуют несколько интерфейсов. Е. Г., ArrayList осуществляет List, RandomAccess, Cloneable и Serializable.


конечно... Почти все классы реализуют несколько интерфейсов. На любой странице документации java ПО Oracle у вас есть подраздел "все реализованные интерфейсы".

теги пример на Date класса.

Да, это возможно. Это уловка: java не поддерживает множественное наследование, т. е. класс не может расширять более одного класса. Однако класс может реализовать несколько интерфейсов.


интерфейс не может наследовать или расширять несколько интерфейсов. Интерфейс может расширить только один другой интерфейс. Также интерфейс не может реализовать какой-либо другой интерфейс. Когда дело доходит до класса, он может расширить один другой класс и реализовать любое количество интерфейсов.

class A extends B implements C,D{...}