Диагностика и ремонт компьютеров

компьютерная помощь, ремонт компьютеров, восстновление данных, обслуживание компьютеров
Услуги компанииО компании

Реализация полиморфизма

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

Интерфейс определяет только члены, реализованные в объекте. В определении интерфейса ничего не говорится о реализации его членов — оно содержит лишь описание типов параметров и возвращаемых значений. Реализация членов, объявленных в интерфейсе, целиком и полностью ложится на класс, в котором этот интерфейс реализован. Так, в разных объектах одни и те же члены интерфейса реализуются совершеннопо-разному. Рассмотрим интерфейс

Интерфейсы определяются с помощью ключевого слова

Interface (interface), например, так:

Visual Basic .NET

Public Interface IDrivable

End Interface

Visual C#

public interface IDrivable

Этот пример объявляет интерфейс

Visual Basic .NET

IDrivable, но не определяет ни одного члена этого интерфейса. Методы-члены интерфейса определяют с обычной сигнатурой метода, но без модификаторов доступа, таких, как public, private и др. Модификатор доступа, заданный для интерфейса, определяет уровень доступа для всех его членов. Таким образом, если интерфейс объявлен с модификатором Public, этот модификатор действует для всех его членов. Вот пример определения методов как членов интерфейса:

{

void GoForward(int Speed):

void Halt():

int DistanceTraveled():

}

Помимо методов, в интерфейсах разрешается определять свойства. На Visual Basic свойства-члены интерфейса необходимо определять с ключевым словом

ReadOnly или Write Only. В С# определение свойства включает метод-получатель (getter), метод-установщик (setter) или оба этих метода. Определение свойства за вершается указанием типа значения, возвращаемого свойством. Вот пример опре деления свойства:

Visual Basic .NET

Public Interface IDrivable

Определения остальных членов опущены. Это определение свойства, доступного только для чтения. ReadOnly Property FuelLevelO As Integer End Interface

Visual C#

public interface IDrivable

get;

// Чтобы сделать это свойство доступным только для чтения,

// объявите здесь метод set.

Public Interface IDrivable Sub GoForward(ByVal Speed As Integer)SUD Halt()Function Distance! raveled() As Integer End Interface Visual C# public interface IDrivable
IShape, определяющий единственный метод —Calculate Area. При этом класс Circle, в котором реализован этот интерфейс, вычисляет площадь фигуры совсем не так, как это делает класс Square, в котором также реализован этот интерфейс. Тем не менее объект, которому необходимо взаимодействовать через IShape, способен вызвать метод CakulaleArea из класса Circle или Square и получить корректный результат.



| ремонт компьютеров | обслуживание компьютеров | восстановление данных | настройка компьютеров | настройка wi-fi |

  Rambler's Top100 Rambler's Top100
Услуги компании:
ООО "КОМПУС" - WWW.KOMPUS.RU