Что такое метод в ооп
Перейти к содержимому

Что такое метод в ооп

  • автор:

Метод (объектно-ориентированное программирование)

Как и процедура в процедурном программировании, метод состоит из некоторого количества операторов для выполнения какого-то действия, имеет набор входных аргументов и возвращаемое значение.

Различают методы класса и метакласса (или в другом толковании статические методы): первые работают с данными объекта, вторые имеют доступ только к данным класса, и общие для всех объектов данного класса. Для статических методов класса не требуется создание объекта.

Методы в некоторых языках (таких как C++ или C# могут иметь модификаторы доступа, которые ограничивают места в программном коде, где могут быть вызваны эти методы (например, модификатор private сделает метод доступным только внутри класса).

Wikimedia Foundation . 2010 .

  • Метнер Николай Карлович
  • Метод (программирование)

Смотреть что такое «Метод (объектно-ориентированное программирование)» в других словарях:

  • Объектно-ориентированное программирование на Python — Объектно ориентированное программирование на Python программирование на Python с использованием парадигмы ООП: с самого начала Python проектировался как объектно ориентированный язык программирования[1]. Содержание 1 Введение 1.1 … Википедия
  • объектно-ориентированное программирование — Метод построения программ как совокупностей объектов и классов объектов, которые могут вызывать друг друга для выбора и выполнения операций. Примечание Объекты состоят из данных и операций над данными. [ГОСТ 19781 90] объектно ориентированное… … Справочник технического переводчика
  • Объектно-ориентированное программирование — Эта статья во многом или полностью опирается на неавторитетные источники. Информация из таких источников не соответствует требованию проверяемости представленной информации, и такие ссылки не показывают значимость темы статьи. Статью можно… … Википедия
  • Объектно-ориентированное программирование на Питоне — С самого начала Питон проектировался как объектно ориентированный язык программирования [1]. Содержание 1 Введение 1.1 Принципы ООП … Википедия
  • Событие (объектно-ориентированное программирование) — У этого термина существуют и другие значения, см. Событие. Событие в объектно ориентированное программировании это сообщение, которое возникает в различных точках исполняемого кода при выполнении определённых условий. События предназначены для… … Википедия
  • Интерфейс (объектно-ориентированное программирование) — У этого термина существуют и другие значения, см. Интерфейс (значения). Интерфейс (от лат. inter «между», и face «поверхность») семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования… … Википедия
  • Класс (объектно-ориентированное программирование) — Класс, наряду с понятием «объект», является важным понятием объектно ориентированного подхода в программировании (хотя существуют и бесклассовые объектно ориентированные языки, например, Прототипное программирование). Под классом подразумевается… … Википедия
  • Метод объектно-ориентированной декомпозиции — основной метод объектно ориентированного программирования, описывающий: статическую структуру системы в терминах объектов и связей между ними; поведение системы в терминах обмена сообщениями между объектами. См. также: Объектно ориентированное… … Финансовый словарь
  • Субъектно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия
  • Объектно-ориентированный подход — Объектно ориентированное программирование (ООП) парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием прототипов). Класс это тип, описывающий… … Википедия

Что такое метод в ооп

6 сентября 2023

Скопировано

Объектно-ориентированное программирование (ООП) — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом. У каждого есть свойства и поведение. Если постараться объяснить простыми словами, то ООП ускоряет написание кода и делает его более читаемым.

Освойте профессию
«Fullstack-разработчик на Python»

Идеология объектно-ориентированного программирования (ООП) разрабатывалась, чтобы связать поведение определенного объекта с его классом. Людям проще воспринимать окружающий мир как объекты, которые поддаются определенной классификации (например, разделение на живую и неживую природу).

Зачем нужно ООП

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

ООП спагетти-код

В отличие от процедурного, объектно-ориентированное программирование позволяет вносить изменения один раз — в объект. Именно он — ключевой элемент программы. Все операции представляются как взаимодействие между объектами. При этом код более читаемый и понятный, программа проще масштабируется.

Объектно-ориентированное программирование используется, чтобы:

  • структурировать информацию и не допускать путаницы;
  • точно определять взаимодействие одних элементов с другими;
  • повышать управляемость программы;
  • быстрее масштабировать код под различные задачи;
  • лучше понимать написанное;
  • эффективнее поддерживать готовые программы;
  • внедрять изменения без необходимости переписывать весь код.

Возможности ООП поддерживает большинство популярных языков программирования, включая JavaScript, PHP, Python и другие.

Читайте также Востребованные IT-профессии 2023 года: на кого учиться онлайн
Профессия / 12 месяцев
Fullstack-разработчик на Python

Создавайте веб-проекты самостоятельно

dffsdd (2)

Структура ООП

Объекты и классы

Чтобы сделать код проще, программу разбивают на независимые блоки — объекты. В реальной жизни это может быть стол, чашка, человек, книга, здание и многое другое. В программировании объекты — это структуры данных: пользователь, кнопка, сообщение. У них, как и у реальных предметов, могут быть свойства: цвет, содержание или имя пользователя. А чтобы объединить между собой объекты с похожими свойствами, существуют классы.

Класс — это «шаблон» для объекта, который описывает его свойства. Несколько похожих между собой объектов, например профили разных пользователей, будут иметь одинаковую структуру, а значит, принадлежать к одному классу. Каждый объект — это экземпляр какого-нибудь класса.

Понять, что такое ООП, поможет аналогия.

  • Понятие «программист» — это класс.
  • Конкретный разработчик по имени Иван — это объект, принадлежащий к классу «программист» (экземпляр класса).
  • Зарплата, рабочие обязанности, изученные технологии и должность в компании — это свойства, которые есть у всех объектов класса «программист», в том числе у Ивана. У разных объектов свойства различаются: зарплата и обязанности Ивана будут отличаться от таковых у другого разработчика Миши.

Атрибуты и методы

Объект — это набор переменных и функций, как в традиционном функциональном программировании. Переменные и функции и есть его свойства.

Объект, класс, атрибуты и методы в ООП

Атрибуты — это переменные, конкретные характеристики объекта, такие как цвет поля или имя пользователя. Методы — это функции, которые описаны внутри объекта или класса. Они относятся к определенному объекту и позволяют взаимодействовать с ними или другими частями кода.

Принципы ООП

Объектно-ориентированное программирование определяют через четыре принципа, по которым можно понять основы работы. Иногда количество сокращают до трех — опускают понятие абстракции.

Абстракция

Абстрагирование — это способ выделить набор наиболее важных атрибутов и методов и исключить незначимые. Соответственно, абстракция — это использование всех таких характеристик для описания объекта. Важно представить объект минимальным набором полей и методов без ущерба для решаемой задачи.

Пример: объекту класса «программист» вряд ли понадобятся свойства «умение готовить еду» или «любимый цвет». Они не влияют на его особенности как программиста. А вот «основной язык программирования» и «рабочие навыки» — важные свойства, без которых программиста не опишешь.

Набор атрибутов и методов, доступный извне, работает как интерфейс для доступа к объекту. Через них к нему могут обращаться другие структуры данных, причем им не обязательно знать, как именно объект устроен внутри.

Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленке

Инкапсуляция

Каждый объект — независимая структура. Все, что ему нужно для работы, уже есть у него внутри. Если он пользуется какой-то переменной, она будет описана в теле объекта, а не снаружи в коде. Это делает объекты более гибкими. Даже если внешний код перепишут, логика работы не изменится.

Инкапсуляция помогает с легкостью управлять кодом. Выше мы сказали, что для обращения к объекту не нужно понимать, как работают его методы. Начальнику разработчика Ивана не обязательно знать, как именно он программирует: главное — чтобы выполнялись поставленные задачи.

Внутреннее устройство одного объекта закрыто от других: извне «видны» только значения атрибутов и результаты выполнения методов.

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

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

Упомянутый программист Иван — это человек. Но «человек» — более общее определение, которое не описывает свойства, важные именно для программиста. Можно сказать, что класс «программист» унаследован от класса «человек»: программист тоже является человеком, но у него есть дополнительные свойства.

В таком случае разработчик Иван будет и человеком, и программистом одновременно. У него будут наборы свойств от обоих классов.

У одного «родителя» может быть несколько дочерних структур. Например, от «человека» можно наследовать не только «программиста», но и «директора».

Одиночное и множественное наследие в ООП

Наследование позволяет реализовывать сложные схемы с четкой иерархией «от общего к частному». Это облегчает понимание и масштабирование кода. Не нужно много раз переписывать в разных объектах одни и те же свойства. Достаточно унаследовать эти объекты от одного «родителя», и «родительские» свойства применятся автоматически.

Полиморфизм

Одинаковые методы разных объектов могут выполнять задачи разными способами. Например, у «человека» есть метод «работать». У «программиста» реализация этого метода будет означать написание кода, а у «директора» — рассмотрение управленческих вопросов. Но глобально и то, и другое будет работой.

Тут важны единый подход и договоренности между специалистами. Если метод называется delete, то он должен что-то удалять. Как именно — зависит от объекта, но заниматься такой метод должен именно удалением. Более того: если оговорено, что «удаляющий» метод называется delete, то не нужно для какого-то объекта называть его remove или иначе. Это вносит путаницу в код.

Преимущества ООП

Модульность

Объектно-ориентированный подход позволяет сделать код более структурированным, в нем легко разобраться стороннему человеку. Благодаря инкапсуляции объектов уменьшается количество ошибок и ускоряется разработка с участием большого количества программистов, потому что каждый может работать независимо друг от друга.

Гибкость

ООП-код легко развивать, дополнять и изменять. Это обеспечивает независимая модульная структура. Взаимодействие с объектами, а не логикой упрощает понимание кода. Для модификации не нужно погружаться в то, как построено ПО. Благодаря полиморфизму можно быстро адаптировать код под требования задачи, не описывая новые объекты и функции.

Экономия времени

Благодаря абстракции, полиморфизму и наследованию можно не писать один и тот же код много раз. Это ускоряет разработку нового ПО. Интерфейсы и классы в ООП могут легко преобразовываться в подобие библиотек, которые можно использовать заново в новых проектах. Также ООП экономит время при поддержке и доработке приложения.

Безопасность

Программу сложно сломать, так как инкапсулированный код недоступен извне.

Недостатки ООП

Сложный старт

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

Снижение производительности

Объектно-ориентированный подход немного снижает производительность кода в целом. Программы работают несколько медленнее из-за особенностей доступа к данным и большого количества сущностей.

Большой размер программы

Код, написанный с использованием ООП, обычно длиннее и занимает больше места на диске, чем «процедурный». Это происходит, потому что в такой программе хранится больше конструкций, чем в обычном процедурном скрипте.

Fullstack-разработчик на Python

Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.

Объектно-ориентированное программирование. Специальные методы.

Декоратор @staticmethod определяет обычную функцию (статический метод) в пространстве имён класса. У него нет обязательного параметра-ссылки self. Может быть полезно для вспомогательных функций, чтобы не мусорить пространство имён модуля. Доступ к таким методам можно получить как из экземпляра класса, так и из самого класса:

class SomeClass(object): @staticmethod def hello(): print("Hello, world") SomeClass.hello() # Hello, world obj = SomeClass() obj.hello() # Hello, world 
Hello, world Hello, world

Декоратор @classmethod создаёт метод класса и требует обязательную ссылку на класс (cls). Поэтому объект класса явно передаётся через первый параметр как это с параметром self происходит для обычных методов. Также как и для self, переданный cls может отличаться от класса, в котором определён класс-метод (может быть потомок). Часто используется для создания альтернативных конструкторов.

class SomeClass(object): @classmethod def hello(cls): print('Hello, класс <>'.format(cls.__name__)) SomeClass.hello() # Hello, класс SomeClass 
Hello, класс SomeClass

Давайте взглянем на пример кода, в котором одновременно показаны она декоратора, это может помочь понять основные принципы:

class Person: def __init__(self, name, age): self.name = name self.age = age # classmethod чтобы создать объект по году рождения, # "альтернативный" конструктор @classmethod def fromBirthYear(cls, name, year): return cls(name, 2019 - year) # статический метод,чтобы проверить совершеннолетие @staticmethod def isAdult(age): return age > 18 person1 = Person('Петя', 21) person2 = Person.fromBirthYear('Петя', 1996) print(person1.age) print(person2.age) # print the result print(Person.isAdult(22)) 
21 23 True

Важно понимать, что ни classmethod ни staticmethod НЕ являются функциями от конкретного объекта класса и соответственно не принимают self. Подчеркнем еще раз их различия: — classmethod принимает cls как первый параметр, тогда как staticmethod в специальных аргументах не нуждается — classmethod может получать доступ или менять состояние класса, в то время как staticmethod нет — staticmethod в целом вообще ничего не знают про класс. Это просто функция над аргументами, объявленная внутри класса.

Специальные методы (магические) вида _ _

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

Эти методы могут эмулировать поведение встроенных классов, но при этом они необязательно существуют у самих встроенных классов. Например, у объектов int при сложении не вызывается метод add. Таким образом, их нельзя переопределить.

Давайте для примера переопределим стандартную операцию сложения. Рассмотрим класс Vector, используемый для представления радиус-векторов на координатной плоскости, и определим в нем поля-координаты: x и y. Также очень хотелось бы определить для векторов операцию +, чтобы их можно было складывать столь же удобно, как и числа или строки.

Для этого необходимо перегрузить операцию +: определить функцию, которая будет использоваться, если операция + будет вызвана для объекта класса Vector. Для этого нужно определить метод add класса Vector, у которого два параметра: неявная ссылка self на экземпляр класса, для которого она будет вызвана (это левый операнд операции +) и явная ссылка other на правый операнд:

class Vector(): def __init__(self, x = 0, y = 0): self.x = x self.y = y def __add__(self, other): return Vector(self.x + other.x, self.y + other.y) A = Vector(1, 2) B = Vector(3, 4) C = A + B print(C.x, C.y) 

Теперь при вызове оператора A + B Питон вызовет метод A.add(B), то есть вызовет указанный метод, где self = A, other = B.

class Vector: def __lt__(self, other): return self.x  other.x or self.x == other.x and self.y  other.y 

В этом примере оператор вернет True, если у левого операнда поле x меньше, чем у правого операнда, а также если поля x у них равны, а поле y меньше у левого операнда.

Список основных перегружаемых операторов

Метод Использование
Операторы сравнения
__lt__(self, other) x < y
__le__(self, other) x
__eq__(self, other) x == y
__ne__(self, other) x != y
__gt__(self, other) x > y
__ge__(self, other) x >= y
Арифметические операторы
Сложение
__add__(self, other) x + y
__radd__(self, other) y + x
__iadd__(self, other) x += y
Вычитание
__sub__(self, other) x — y
__rsub__(self, other) y — x
__isub__(self, other) x -= y
Умножение
__mul__(self, other) x * y
__rmul__(self, other) y * x
__imul__(self, other) x *= y
Математическое умножение (например векторное)
__matmul__(self, other) x @ y
__rmatmul__(self, other) y @ x
__imatmul__(self, other) x @= y
Деление
__truediv__(self, other) x / y
__rtruediv__(self, other) y / x
__itruediv__(self, other) x /= y
Целочисленное деление
__floordiv__(self, other) x // y
__rfloordiv__(self, other) y // x
__ifloordiv__(self, other) x //= y
__divmod__(self, other) divmod(x, y)
Остаток
__mod__(self, other) x % y
__rmod__(self, other) y % x
__imod__(self, other) x %= y
Возведение в степень
__pow__(self, other) x ** y
__rpow__(self, other) y ** x
__ipow__(self, other) x **= y
Отрицание, модуль
__pos__(self) +x
__neg__(self) -x
__abs__(self) abs(x)
__len__(self) len(x)
Преобразование к стандартным типам
__int__(self) int(x)
__float__(self) float(x)
__complex__(self) complex(x)
__str__(self) str(x)
__round__(self, digits = 0) round(x, digits)
Блок with
__enter__(self)
__exit__(self)

Задачи:

Задача 1:

Реализуйте свой класс Complex для комплексных чисел, аналогично встроенной реализации complex:

  1. Добавьте инициализатор класса
  2. Реализуйте основные математические операции
  3. Реализуйте операцию модуля (abs, вызываемую как |c|)
  4. Оба класса должны давать осмысленный вывод как при print, так и просто при вызове в ячейке

Задача 2:

  1. Создайте класс Vector с полями x, y, z определите для него конструктор, метод __str__, необходимые арифметические операции. Реализуйте конструктор, который принимает строку в формате «x,y».
  2. Программа получает на вход число N, далее координаты N точек. Доопределите в классе Vector недостающие операторы, найдите и выведите координаты точки, наиболее удаленной от начала координат.
  3. Используя класс Vector выведите координаты центра масс данного множества точек.
  4. Даны два вектора. Выведите площадь параллелограмма, построенного на заданных векторах.
  5. Даны три вектора. Выведите объём параллелепипеда, построенного на заданных векторах.
  6. Среди данных точек найдите три точки, образующие треугольник с наибольшим периметром. Выведите данный периметр.
  7. Среди данных точек найдите три точки, образующие треугольник с наибольшей площадью. Выведите данную площадь.

Сайт построен с использованием Pelican. За основу оформления взята тема от Smashing Magazine. Исходные тексты программ, приведённые на этом сайте, распространяются под лицензией GPLv3, все остальные материалы сайта распространяются под лицензией CC-BY.

Методы объектно-ориентированного программирования на PHP

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

Итак, методы объектно-ориентированного программирования PHP – это обычные функции, которые описываются непосредственно в структуре класса.

class User < public $ name ; public $ login ; public $ email ; public function myFunc ( ) < echo "Helo world!" ;

Как видно из примера выше, для создания метода, необходимо указать один из спецификаторов доступа, далее ключевое слово function и, конечно же, имя создаваемого метода. Как обычно между круглыми скобками указывается необходимое количество передаваемых аргументов, а между фигурными – тело, или код метода. Обратите внимание, что используемые спецификаторы – точно такие же, как и при объявлении свойств, а значит используемый public, указывает, что доступ к методу открыт извне.

Теперь давайте создадим объект вышеуказанного класса и посмотрим, как можно обратиться к методу myFunc(), то есть вызвать его на исполнение.

$ user1 = new User ( ) ;
$ user1 — > myFunc ( ) ;

Как Вы видите, обращение к методам, осуществляется точно так же как и к свойствам класса. То есть изначально указывается интересующий объект, далее два специальных символа “->”, а затем имя необходимого метода. При этом в круглых скобках, при необходимости, можно указать передаваемые параметры. Обратите внимание, круглые скобки – обязательны, при вызове метода, так как это сообщает интерпретатору языка PHP, что вызывается метод, а не свойство класса.

Теперь, скорее всего у Вас возник вопрос – как в методах манипулировать свойствами объекта, то есть, как получить к ним доступ, ведь, обратиться к свойству как обычной переменной не получится. Потому как, Вы знаете, что для работы со свойствами, да и объектами, необходим объект, как реализация конкретного класса. Поэтому, для того чтобы обратиться из кода метода, к свойству класса, или же его другому описанному методу – необходимо обратиться к зарезервированной переменной $this, за которой указать, уже знакомые нам символы “->” и конечно же имя интересующего элемента.

class User < public $ name ; public $ login ; public $ email ; public function myFunc ( ) < echo $ this - > name ;
$ user1 = new User ( ) ;
$ user1 — > name = «Ben» ;
$ user1 — > myFunc ( ) ;

Зарезервированная переменная $this – предоставляет доступ к объекту класса, к свойству или методу которого необходимо обратиться. В примере выше, метод myFunc(), отображает на экране значение свойства $name, поэтому так как, оно не определено по умолчанию, перед вызовом метода на исполнение, определим содержимое данного свойства. На экране, конечно же, мы увидим строку “Ben”. Таким образом, формируя структуру конкретного метода, мы можем даже не задумываться о тех объектах, которые будут создаваться на основе класса, так как переменная $this – это прямой указатель объекта.

Так же ни кто нам не мешает, из одного метода, обратиться к другому:

class User < public $ name ; public $ login ; public $ email ; public function myFunc ( ) < return $ this - > name ;
public function show ( ) < echo myFunc ( ) ; $ user1 = new User ( ) ; $ user1 - > name = «Ben» ;
$ user1 — > myFunc ( ) ;

В примере выше, метод myFunc(), возвращает значение свойства объекта $name, которое отображается на экран посредством метода show(). При этом доступ к методу myFunc(), осуществляется из кода метода show(), опять же используя $this.

Таким образом, теперь Вы знаете, зачем используются методы объектно-ориентированного подхода в PHP. Но обратите внимание на предыдущие примеры, согласитесь, не совсем удобно, каждый раз при создании, объекта, обращаться к его свойствам для определения необходимых значений. Хотелось бы, что бы при создании объекта, как бы автоматически определялись значения конкретных свойств, то есть определить начальное состояние объекта. И при необходимости мы можем данную возможность описать. Для этого можно использовать один из магических методов, под названием конструктор. Магическим методом в объектно-ориентированном программировании PHP, является – специальный метод в имени, которого присутствует префикс “__” и который вызывается при определенных условиях. Тема данной статьи, конечно же, не связана с методами подобного типа, но все же один из них мы с Вами рассмотрим.

Итак, метод конструктора – это метод, который вызывается при создании объекта класса и именуется _construct() (имя начинается с двойного подчеркивания). Таким образом, Вы можете использовать его для предварительной настройки состояния объекта. Поэтому примеры выше мы можем переписать следующим образом:

class User < public $ name ; public $ login ; public $ email ; public function __construct ( $ name , $ login , $ email ) < $ this - > name = $ name ;
$ this — > login = $ login ;
$ this — > email = $ email ;
public function myFunc ( ) < return $ this - > name ;
public function show ( ) < echo myFunc ( ) ; $ user1 = new User ( 'Ben' , 'ben' , 'ben@email.ru' ) ; $ user1 - > myFunc ( ) ;

В данном примере, мы вручную, при создании объекта $user1, не задаем значения для свойств – за нас это делает конструктор. При этом, создавая объект, после имени класса, в круглых скобках, мы передаем аргументы, для метода конструктора – имя, логин и почтовый ящик пользователя. Далее в конструкторе, используя знакомую нам переменную $this – мы обращаемся к необходимым свойствам объекта и определяем их значения. Таким образом, далее, можно обращаться к методу show(), для отображения информации о пользователе на экран. Собственно остальные магические методы ООП подхода на PHP мы с Вами будем рассматривать в следующих статьях данной серии.

И напоследок, что хотел бы вспомнить — это так называемые виртуальные методы ООП на PHP, так как данное понятие Вы можете встретить в различной литературе. Собственно – это методы, которые могут быть переопределены в классах наследниках, так что, по сути, функционал метода будет определен непосредственно во время исполнения. Опять же тему наследования мы с Вами еще не рассматривали и возможно Вам на данном этапе сложно понять, что и к чему. Поэтому для этого будет выделена отдельная статья. Но кратко хотел бы отметить, что в ООП, можно создать класс в качестве родителя и создать класс, который будет являться дочерним, по отношению к выше указанному. При этом дочерний класс будет наследовать родительский, а значит, получит доступ к его методам и свойствам. И в этом случае ни кто не запрещает ему переопределять некоторые методы родительского класса, то есть создавать методы, имя которых будет совпадать с именами методов родителя. То есть, как бы менять их код – функционал, а значит, при этом родительский метод будет считаться виртуальным.

На этом у меня все. Всего Вам доброго и удачного кодирования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *