В Java имется один класс – Object, являющийся суперклассом для всех других классов. Таким образом ссылочная переменная типа Object может обращаться к объекту любого другого класса. Более того, так как массивы реализуются как и классы через ссылочную переменную, то переменная типа Object может также обращаться и к массиву.
Пакеты и интерфейсы
Пакеты
Для того, чтобы имя разработанного класса не вступало в конфликт с такими же именами других классов в Java используются контейнеры для таких классов. Т.о. пакет – это контейнер для классов. Пакет используется для определения пространства имен классов разделенное на именованные области. Например, можно создать класс Shape, заключить его в пакет и не думать после этого о возможных конфликтах, которые могли бы возникнуть, если бы кто-нибудь создал класс с именем Shape. Пакеты - это механизм, который служит как для работы с пространством имен, так и для ограничения видимости. Пакеты подчинены иерархии и явным образом импортируются в определения новых классов. У каждого файла .java есть четыре одинаковых внутренних части. Ниже приведена общая форма исходного файла Java.
одиночный оператор package (необязательный)
любое количество операторов import (необязательны)
одиночное объявление открытого(public) класса
любое количество закрытых(private) классов пакета (необязательны)