Как получить сумму элементов списка? [закрыто]

Это некоторые различия между интерфейсами и абстрактными классами.

1A. Класс может наследовать (реализовать) один или несколько интерфейсов. Таким образом, в C # интерфейсы используются для достижения множественного наследования. 1В. Класс может наследовать только один абстрактный класс.

2A. Интерфейс не может предоставить какой-либо код, а только подпись. 2B. Абстрактный класс может предоставить полный код по умолчанию и / или только детали, которые необходимо переопределить.

3A. Интерфейс не может иметь модификаторы доступа для подсистем, функций, свойств и т. Д. Все считается общедоступным. 3B. Абстрактный класс может содержать модификаторы доступа для подтипов, функций, свойств.

4A. Интерфейсы используются для определения периферийных способностей класса. Напр. A Ship и Car могут реализовать интерфейс IMovable. 4В. Абстрактный класс определяет идентификатор ядра класса и там он используется для объектов.

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

6A. Если мы добавим новый метод в интерфейс, мы должны отследить все реализации интерфейса и определить реализацию для нового метода. 6В. Если мы добавим новый метод в абстрактный класс, то у нас есть возможность обеспечить реализацию по умолчанию, и поэтому весь существующий код может работать исправно.

7A. Интерфейс не может определять поля. 7В. Абстрактный класс может иметь поля и константы.

8A. Интерфейс не может иметь конструктор. 8В. Абстрактный класс может иметь встроенные конструкторы по умолчанию.

9A. Интерфейс может наследовать только от других интерфейсов. 9В. Абстрактный класс может наследовать от интерфейсов, абстрактного класса или даже класса.

-9
задан jamylak 12 April 2013 в 04:11
поделиться