Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
полный ответ по веб сервис.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
324 Кб
Скачать
☆

13)Абстракт класс

Абстрактный класс в объектно-ориентированном программировании — базовый класс, который не предполагает создания экземпляров. Абстрактные классы реализуют на практике один из принципов ООП — полиморфизм. Абстрактный класс может содержать (и не содержать[1]) абстрактные методы и свойства. Абстрактный метод не реализуется для класса, в котором объявлен, однако должен быть реализован для его неабстрактных потомков. Абстрактные классы представляют собой наиболее общие абстракции, то есть имеющие наибольший объём и наименьшее содержание.

В одних языках создавать экземпляры абстрактных классов запрещено, в других это допускается (например, ObjectPascal(Delphi)), но обращение к абстрактному методу объекта этого класса в процессе выполнения программы приведёт к ошибке. Во многих языках допустимо объявить любой класс абстрактным, даже если в нём нет абстрактных методов (например, Java), именно для запрещения создания экземпляров. Абстрактный класс можно рассматривать в качестве интерфейса к семейству классов, порождённому им, но, в отличие от классического интерфейса, абстрактный класс может иметь определённые методы, а также свойства.

Абстрактные методы часто являются и виртуальными, в связи с чем понятия «абстрактный» и «виртуальный» иногда путают

14) Полиморфизм.

Полиморфизм термині гректің екі сөзінен шыққан: poly (көп) и morphos (форма). Демек полиморфизм дегеніміз «көп форма» деген мағынаны білдіреді. Бұл типтің ерекшелігі бұл тип кез келген әртүрлі типтегі мәндерге ие бола алады. Полиморфты параметрлері бар процедуралар (функциялар) полиморфты деп аталады. Ары қарай полиморфты ООП да қолданылуы қарастырылады. Шеңберлермен мысалдарға қайта оралайық, мысалы экранда тек шеңбер емес, басқа да геометриялық денелерді салу керек делік. Олармен де жоғарыда келтірілген параметрлермен қимылдар жасауы керек делік. Оны салу үшін біз оның биіктігі мен енін және ұзындығын білуіміз керек. Аталған параметрлерді енгізу үшін біз класс құруымыз керек. Ол классты Rect (rectangle – тіктөртбұрыш), ол Round класының мұрагері болуы керек. Round класын универсалды ету үшін, оның қасиеттерін өзгерту керек.оның радиусымен орталық координатасына орнына төмендегідей мәндерді енгізу керек: Тор – фигураның жоғарғы жағының координатасы; Left - фигураның сол жағының координатасы; Height - фигураның биіктігінің координатасы; Width - фигураның енінің координатасы. Осы қасиеттер бойынша фигураға жетпей координаттарды оңай анықтауға болады. Мысалы, тіктөртбұрышты (квадратты) бейнелеу үшін сол жақ координатасына енін қосу керек, ал төбесі жағынан биіктігін алып тастау керек. Делік, Тор =80, Left =20, Height =40, Width =60. Онда оң жағы мына мәнге ие болады: Left + Width =80, Ал төменгісі мынаған: Тор - Height =40. Демек, аталған тіктөртбұрыш келесідей координаттарға ие болады (оң координата – горизонталь ось үшін, екінші мәні – вертикаль ось үшін): А (20,80), В (80,80), аталған тіктөртбұрыш 13.4 суретте қарастырылған. Round тегі негізінен жоғарыда аталған қасиеттерге сүйене отырып, Rect ұрпағын құруға болады. Яғни бұл ұрпақты тіктөртбұрыш салу барысында қолдануға болады. Демек, бұл сурет бейнелеу шеңберлерді бейнелеуден әлдеқайда бөлектеніп тұруы тиіс. Сонымен, Rect Draw әдісін өзіне тән етуі тиіс, ата – анасынан бөлектенуі тиіс. Өзге жағдайларда Rect әдісіне жататын Draw программасын шақыртқан уақытта экранда тіктөртбұрыш емес, шеңбер бейнеленіп тұрады. Мұндай оқиға болмау үшін, Rect әдісіне Draw әдісінің қасиеттерін сипаттау қажет. Сонда Round әдісіне жататын объектілер үшін Draw мәні шеңбер болады да, Rect әдісі үшін, Draw мәні тіктөртбұрышты бейнелейді. Draw атымен аталған әдістер әртүрлі қимылдар үшін жауап береді. Ол қай кластағы суретті бейнелеуге байланысты болады. Аталған жағдай ООП – да полиформизм деп аталады. Аталған полиформизмнің ООП – да графикалық интерпретациясы 13.5 суретте келтірілген.--