Skip to main content

Что такое базовый класс?

Базовый класс, также называемый суперклассом, - это компьютерный объект, который служит основой для одного или нескольких производных классов. Любой компьютерный язык, способный к наследованию, может создать базовый класс. В зависимости от их точного типа, базовые классы могут или не могут быть способны инициализировать - присваивать начальное значение объекту - самостоятельно, но они всегда предоставляют какую-то общую функциональность любому классу, который наследует от них. Никогда не существует ограничения на количество производных классов или подклассов, которые могут иметь базовые классы, но может быть ограничение, в зависимости от языка компьютера, на количество базовых классов, которые может иметь производный класс. Говорят, что языки, которые позволяют производному классу иметь только одну базу, обеспечивают единое наследование, в то время как те, которые позволяют производному классу иметь несколько базовых классов, используют множественное наследование.

Конкретные базовые классы могут быть инициализированы самостоятельно; то есть объект типа базового класса может быть создан. Если класс Example является базой для производного класса Example2, то можно создать как объект типа Example2, так и объект типа Example. Объект типа Example может быть сделан только путем явного вызова для этого типа объекта; создание объекта типа Example2 не создает вторичный объект типа Example. В каждом случае создаваемый тип объекта создает только экземпляр самого себя.

Абстрактные базовые классы, напротив, не могут быть инициализированы сами по себе, что означает, что объект базового класса не может быть создан сам по себе. Если класс Example3 является абстрактной базой для производного класса Example4, может быть создан только объект типа Example4. Несмотря на то, что тип Example4 включает в себя данные типа Example3, попытка создать объект только типа Example3 приведет к ошибке. Эта функциональность иногда может быть полезна, особенно если класс Example3 содержит личные данные, которые должны строго регулироваться.

В зависимости от языка, на котором он появляется, базовый класс может вести себя немного по-разному и заметно различаться по именам. В Java® базовые классы всегда называются этим именем, а в C ++, в зависимости от их структуры, они могут называться виртуальными классами. Различия в названии и функциональности, хотя и значительны с точки зрения используемых компьютерных языков, не подразумевают серьезных различий в принципах, лежащих в основе классов Базовый класс всегда используется для инкапсуляции общей функциональности и данных для его производных классов, независимо от языка.