Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_for_Beginners.doc
Скачиваний:
35
Добавлен:
13.02.2015
Размер:
2.39 Mб
Скачать

Наследование

Класс может наследовать от другого класса, что означает, что он включает все члены — открытые и закрытые — исходного класса, а также дополнительные определяемые им члены. Исходный класс называется базовым классом, а новый класс — производным классом. Производный класс создается для представления особых возможностей базового класса. Например, можно определить класс Cat, который наследует от Animal. Cat может выполнять все тоже, что и Animal и дополнительно одно уникальное действие. Код C# выглядит следующим образом.

public class Cat : Animal

{

public void Purr()

{

}

}

Нотация Cat : Animal означает, что Cat наследует от Animal и что Cat также имеет метод MoveLeft и три закрытые переменные: size, speed и strength. Если определяется класс SiameseCat, который наследует от Cat, он будет содержать все члены Cat, а также все члены Animal.

Полиморфизм

В сфере компьютерного программирования полиморфизмом называют возможность производного класса изменять или переопределять методы, которые он наследует от базового класса. Эта функция используется, если в методе, который имеет отличия, либо не определен в базовом классе, нужно выполнить какие-то особые действия. Например, поскольку метод Animal.MoveLeft должен быть общим, чтобы подходить для всех животных, он является, возможно, очень простым, как например "изменение положения так, чтобы голова животного была в направлении X". Однако для класса Cat этого может быть недостаточно. Может потребоваться указать, как Cat двигает лапами и хвостом при поворотах. И если класс Fish или класс Bird уже определен, возможно, потребуется переопределить метод MoveLeft разными способами для каждого из классов. Поскольку можно настроить поведение метода MoveLeft для конкретного класса, в коде, создающем класс и вызывающем его методы, отсутствует отдельный метод для каждого животного. Пока объект наследует от Animal, вызывающий код может вызывать лишь метод MoveLeft и собственную версию метода объекта.

Constructors

Every class has a constructor: a method that shares the same name as the class. The constructor is called when an object is created based on the class definition. Constructors typically set the initial values of variables defined in the class. This is not necessary if the initial values are to be zero for numeric data types, false for Boolean data types, or null for reference types, as these data types are initialized automatically.

You can define constructors with any number of parameters. Constructors that do not have parameters are called default constructors. The following example defines a class with a default constructor and a constructor that takes a string, and then uses each:

class SampleClass

{

string greeting;

public SampleClass()

{

greeting = "Hello, World";

}

public SampleClass(string message)

{

greeting = message;

}

public void SayHello()

{

System.Console.WriteLine(greeting);

}

}

class Program

{

static void Main(string[] args)

{

// Use default constructor.

SampleClass sampleClass1 = new SampleClass();

sampleClass1.SayHello();

// Use constructor that takes a string parameter.

SampleClass sampleClass2 = new SampleClass("Hello, Mars");

sampleClass2.SayHello();

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]