Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пример статического наследования методов

Читайте также:
  1. A. Повышение гидростатического давления крови в венозной части капилляров
  2. III. ПРИМЕРНАЯ СТРУКТУРА КУРСОВОЙ РАБОТЫ
  3. III.2. ПРИМЕРНАЯ ТЕМАТИКА РЕФЕРАТОВ, КУРСОВЫХ РАБОТ
  4. S53.Сущность психологических методов управления.
  5. V. ПРИМЕРНАЯ ТЕМАТИКА РЕФЕРАТОВ
  6. VI. ДАННЫЕ ЛАБОРАТОРНЫХ И ИНСТРУМЕНТАЛЬНЫХ МЕТОДОВ ИССЛЕДОВАНИЯ
  7. VI. ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ВОПРОСОВ К ЗАЧЕТУ
  8. Алгоритм. Свойства алгоритмов. Способы записи алгоритмов. Базовые структуры алгоритмов. Примеры.
  9. Алюминий и его сплавы. Классификация алюминиевых сплавов. Деформируемые алюминиевые сплавы. Дуралюмины, термическая обработка дуралюминов. Примеры, маркировка.
  10. Анализ достоинств и недостатков различных методов обучения.

 

Разрабатываем цепочку наследуемых классов простейших геометрических фигур базовый, точка и круг.

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

Пример статического наследования – обычное создание объектов, присваивание полям данных (координатам точки или координатам центра круга и радиуса) некоторых случайных значений в диапазоне от 0 до 100 и печать этих значений.

Исходный код программы:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

public partial class Form1: Form

{

public int x, y, ra;

public abstract class baseGeo

{

public virtual double ploc() {return 0;}

public abstract string printO();

}

 

public class tka: baseGeo

{

protected int x, y;

public string ss;

public tka()

{

Random rnd = new Random();

x = rnd.Next(100);

y = rnd.Next(100);

}

public int gettkax() { return x; }

public int gettkay() { return y; }

public void settka(int xx,int yy)

{

x=xx;

y=yy;

}

 

override public string printO()

{

return "[" + x.ToString() + "," + y.ToString() + "]";

}

}

 

public class kryg: tka

{

public kryg()

{

Random rnd = new Random(10);

r = rnd.Next(100);

}

public void setkryg(int ax,int ay,int rr)

{

settka(ax,ay);

r=rr;

}

public void getkryg(out int ax, out int ay, out int rr)

{

ax = x;

ay = y;

rr = r;

}

public int getkrygr() { return r; }

override public double ploc() // перекрываем метод

// базового класса

{

return 3.14*r*r;

}

override public string printO() // перекрываем метод

// класса tka

{

string ss = "";

ss = "Круг с центром " + base.printO() + "\r\n";

// наследуется функция печати класса tka

ss = ss + " Радиусом = " + r.ToString() + "\r\n";

return ss;

}

private int r;

}

 

public Form1()

{

InitializeComponent();

}

 

private void button1_Click(object sender, EventArgs e)

{

int i;

double pl;

string s;

Random rnd = new Random(20);

x = rnd.Next(100);

y = rnd.Next(100);

//ra = rnd.Next(100);

 

// пример статического наследования методов

tka a = new tka();

a.settka(x, y);

s = " Точка с координатами: " + a.printO() + "\r\n";

textBox1.AppendText(s);

s = " Площадь объекта = " + a.ploc().ToString() + "\r\n";

textBox1.AppendText(s);

kryg c = new kryg();

x = c.gettkax();

y = c.gettkay();

ra = c.getkrygr();

//c.setkryg(x, y, ra);

textBox1.AppendText(c.printO());

s = " Площадь объекта = " + c.ploc().ToString() + "\r\n";

textBox1.AppendText(s);

Invalidate();

}

 

private void Form1_Paint_1(object sender, PaintEventArgs e)

{

Pen myPen = new Pen(Color.Red, 2);

Graphics g = e.Graphics;

g.DrawEllipse(myPen, x, y, ra, ra);

}

}

}

Работа программы:

 

 

Рисунок 10.1 – Статическое наследование методов

 

В приведенном примере статического наследования методов присутствует механизм перекрытия методов, но связи между методами фактически определяются во время компиляции программы.

 




Дата добавления: 2015-02-16; просмотров: 17 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав