Что означает "глубина наследования" для методов?

Я только что установил Visual Studio Power Tool для анализа кода и средство просмотра результатов. Кстати, отличные инструменты!

Когда я нажимаю "Анализ решения", я получаю результаты:

  • Ремонтопригодность
  • Цикломатическая Сложность
  • Глубина Наследования
  • Класс сцепления
  • Строки кода

Я понимаю, что все это означает, за исключением того, что существуют разные значения "глубины наследования" для каждого метода в классе и большее значение для класса.

У кого-нибудь есть объяснение того, что это может говорить?

2 ответа

Решение

Поскольку каждый производный класс расширяет предыдущий класс, он добавляет дополнительную функциональность. Он может добавлять свойства или методы, которых не было в предыдущем базовом классе. Теперь общий набор методов больше, чем для базового класса. Этот процесс может быть повторен, когда производный класс получен из снова.

Так что если вы берете самый производный класс и выбираете метод A и следуйте до базового класса, который первым реализовал A, это может быть другой более глубокий класс, чем если бы вы выбрали метод B и следуйте до первого базового класса, который реализован B, Вот почему глубина наследования может быть разной для разных методов.

Если вы возьмете сам класс, у него будет четкая серия базовых классов и четкая собственная глубина, независимо от глубины методов, которые всегда одинаковы или меньше самого класса.

Вот отличное объяснение (с картинками!) Глубины Наследования:

http://web.archive.org/web/20101216141549/http://nayyeri.net/depth-of-inheritance-for-wpf-and-windows-forms-applications

Другие вопросы по тегам