[
в начале имени класса должно читаться как "массив ...", где "..." означает то, что следует за [
;условные обозначения, изложенные ниже, изложены в документации для Class.getName()
, на которую @emory ссылается и на которую ссылается.
Раздел 4.3.1 спецификации языка Java начинается: «Объект являетсяэкземпляр класса или массив. "Это говорит о том, что массивы не являются экземплярами классов.(Возможно, именно это @TigerTrussell получил в своем ответе.) Однако начинается Раздел 10.8 : «Каждый массив имеет связанный объект Class, совместно используемый со всеми другими массивами с таким же типом компонента. Прямой суперкласстипа массива является Object. "Это говорит о том, что массивы, если не истинные экземпляры классов, чертовски близки.
К сожалению, правила синтаксиса для Java запрещают наследование от типа массива:
public class MyFancyArray extends int[] { // ILLEGAL
// ...
}
Обратите внимание, что этоограничение синтаксиса;нет никаких концептуальных или семантических барьеров (и это допускается во многих других языках ОО).