Interested Article - Суперкласс (программирование)

В программировании суперклассом или родительским классом называют класс , на основе которого создаются другие классы. Классы, полученные на основе суперкласса, называются дочерними классами , производными классами или подклассами .

Суперкласс позволяет создавать обобщенный интерфейс, заключающий в себе настраиваемую функциональность за счет использования виртуальных функций .

Механизм суперклассов широко используется в объектно-ориентированном программировании благодаря возможности повторного использования , что достигается благодаря общим возможностям, инкапсулированным в модульные объекты.

Языки программирования могут поддерживать абстрактные и конкретные суперклассы.

Базовый класс

Базовый класс — это класс, не имеющий суперкласса, и поэтому находится в основании дерева подклассов. Большинство объектно-ориентированных систем программирования обеспечивает библиотеку классов, на основании которых разработчик создает свои собственные. Эти библиотеки зачастую предлагают один или довольно ограниченный набор базовых классов, которые составляют основу библиотеки.

В случае, когда язык или библиотека имеют лишь один базовый класс, то он именуется высшим типом .

В языке UML класс может иметь собственный набор корневых (root) свойств для обозначения, что это именно базовый класс.

В C++-стиле (который используется в C# и других языках) термин «базовый класс» используется вместо термина «суперкласс».

Примеры

Java

В языке программирования Java для определения суперкласса какого-либо класса вызывается метод getSuperclass . Этот метод возвращает объект Class, отражающий суперкласс данного класса, или возвращает null, если класс не имеет суперклассов. Для определения всех родителей класса метод getSuperclass вызывается повторно, пока не возвратит null.

В нижеследующем примере происходит поиск имён родительских классов для класса Button при помощи метода getSuperclass :

import java.lang.reflect.*;
import java.awt.*;

class SampleSuper {

   public static void main(String[] args) {
      Button b = new Button();
      printSuperclasses(b);
   }

   static void printSuperclasses(Object o) {
      Class subclass = o.getClass();
      Class superclass = subclass.getSuperclass();
      while (superclass != null) {
         String className = superclass.getName();
         System.out.println(className);
         subclass = superclass;
         superclass = subclass.getSuperclass();
      }
   }
}

Программа возвращает:

java.awt.Component
java.lang.Object

См. также

Примечания

Источник —

Same as Суперкласс (программирование)