Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПИЯП 2.docx
Скачиваний:
2
Добавлен:
25.09.2019
Размер:
45.22 Кб
Скачать
  1. При указании в производном классе базе методом, вызывается конструктор непосредственного базового класса

  2. Передача аргументов конструктору базового класса осуществляется путем указания их в качестве аргументов базе методом производного класса

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

создать класс «Флора», содержащий некоторые общие свойства.реализовать производный класс с его общими свойствами.

classFlora

{public double st_w;

public double st_h;

public void Show()

{Console.WriteLine(“ширинаствола”st_w+”высотаствола”+st_h);

}}

classDyb : Flora

{public string color_l;

public string shape_l;

public void showStyle()

{

console.WriteLine(“цвет-”color_l + “форма”+shape_l);

}

classInformation : Dyb

{publicINf (string name, string color_l, string shape_l, double w, double h): base (st_w,st_ h, color_l, shape_l)

{

color = color_l;

shape = shape_l;

w = st_w;

h = st_h;

Console.WriteLine(name + color + shape+ w + h)}

classVivod

{public static void main()

{Information I1 = new Information (“Дуб”, ”зеленый”, “Неправильная”, “50”, “150”)

I1.Information();

}

Сокрытие имен

Public class MyBaseClass{

Public void DoSomething()

{…}}

Public class MyDerivedClass:: MyBaseClass{

Public void DoSomething()

{}

Public class MyDerivedClass ::MybaseClass {

New public void DoSomething()

{}

Public class MyBaseClass{

Public virtual void DoSomething()

{console.Writeline(“Base imp”);

{//базовая реализация}}

Public class MyDerivel :: MyBaseClass{

Public override void DoSomething()

{console.Writeline(“Derived imp”);}}

Public class MyBaseClass{

Public virtual void DoSomething()

{console.Writeline(“Base imp”);}}

Public DerivedClass :: MyBaseClass{

В ООП иногда требуется определить что класс должен знать, а не каким образом это будет реализовано

В С# предусмотрена возможность полностью отделить интерфейс класса от его реализации с помощью ключевого слова interface. Он определяет набор методов, которые будут реализованы классом, т.е. интерфейс- это логическая конструкция, которая описывает методы, не устанавливая жестко способ их реализации. В отличии от абстрактных классов не один метод не содержит реализации. Один интерфейс может быть реализован любым числом классов, при этом один класс может реализовывать любое число интерфейсов. Для реализации интерфейса класс должен обеспечить тела методов, описанных в интерфейсе

Interface имя

{тип метод1 (список парам-в);

Тип метод№ (-//-);

}

Public interface ISeries

{int getNext();

Void Reset();

Void SetStart(int X);}

Class имя : имя интерфейса

{…}

Реализация

Class ByTwos : ISeries

{int start;

Int val;

Public ByTwos()

{start = 0;

Val = 0;}

Public int getNext()

{val +=2;

Return val;}

Public void reset()

{val = start;}

Public void setStart(int x)

{start = x;

Al = start;}

Использование

Using System;

Class SeriesDemo

{public static void Main()

{ByTwos ob = new ByTwos();

For (int I = 0;i<5;i++)

Console.WriteLine(“”+ob.getNext());

Console.WriteLine(“\n”+ ob.reset());

For(int i=0;i<5;i++)

Console.WriteLine(“”+ob.getNext());

Console.WriteLine(“\n”);

ob.setStart t(100);

for(int i=0;i<5;i++)

console.WriteLine(“”+ob.getNext());}}

можно объявлять ссылочные переменные интерфейсного типа. Такая переменная может ссылаться на любой объект, который реализует любой интерфейс. При выборе метода для объекта по средствам интерфейсной ссылки будет выполнена та версия указанного метода, которая реализована этим объектом. Данный процесс аналогичен при использовании ссылок

Ознакомится с темами: перегрузка методов операторов, исключение

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