Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


C#.Полиморфизм.Перегрузка операций и методов.




Перегруженными наз-ся два и более метода с одинаковым именем,но с разл.списками аргументов. Перегрузка. Часто бывает,что вып-ся одно и тоже действие(метод),но с разн. типами аргументов или их кол-вом.В нек.языках программ-я,чтобы решить дан.проблему приходилось описать все методы с новыми именами,в С# для этого есть перегрузка. Перегрузка операторов тесно связана с перегрузкой методов. Для перегрузки операторов исп-ся ключ.слово operator, позволяющее создать операторный метод,кот.опр-т действие оператора,связанное с его классом.Сущ-т 2 формы методов operator:одна исп-ся для унарных операторов,а другая-для бинарных.Общий же формат таков:

Здесь эл-т ор- это оператор(например "+" или "/"),кот. перегружается.Эл-т тип_возврата-это тип зн-я, возвращ-го при вып-ии зад.операции.Несмотря на то, что можно выбрать любой тип,тип возвращ-го зн-я чаще всего будет совпадать с типом класса,для кот.этот оператор перегружается.Такая корреляция облегчает исп-е перегр. оператора в выр-ях.Для унарных операторов операнд передается в эл-те операнд,а для бинарных-в эл-тах операнд1 и операнд2.Для унарных операторов тип операнда должен совпадать с классом,для кот.определен оператор.Что касается бинарных операторов, то тип хотя бы одного операнда должен совпадать с соответств-им классом.Таким образом,С#-операторы нельзя перегружать для классов, не созданных вами.Например,вы не можете перегрузить оператор "+" для типов int или string.

И последнее: параметры операторов не должны исп-ть модификатор ref или out.


14. C#.Наследование.Ограничения при наследовании.

Важнейшим св-вом ООП явл-ся наследование.Для того, чтобы показать,что класс В наследует класс A (класс B выведен из класса A),в опр-ии класса B после имени класса ставится двоеточие и затем перечисляются классы,из кот.B наследует:class<производный_класс>:<базовый_класс>

class A

{public:

A();

~A();

MethodA();};

class B: public A

{public:

B();

...};

Термин "наследование" озн-т,что класс B обладает всеми св-вами класса A,он их унаследовал.У объекта производного класса есть все атрибуты и методы баз.класса. Новый класс может добавить собств.атрибуты и методы.Ключ.слово public перед именем баз.класса опр-т,что внеш.интерфейс баз.класса стан-ся внеш.интерфейсом порожденного класса. Это наиболее употребляемый тип наследования.С# не поддерживает множественное наследование.Но можно объединять хар-ки поведения нескольких программных сущностей,реализовав несколько интерфейсов.Интерфейсы, выбранные для реал-ции,перечисляются после баз.класса дан.класса.Пример:класс MyClass происх-т от Control и реализует интерфейсы Foo к Bar:

class Control
{ }
interface IFoo
interface IBar
{ }
class MyClass:Control,IFoo,IBar
{ }
Главное здесь то,что единств.способом реал-ции чего-либо, напоминающего множественное наследование,на С# явл-ся прим-е интерфейсов.

 





Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 759 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2407 - | 2289 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.