Просто отличная лекция! ООП вообще блестяще расставлены акценты. Спасибо, Сергей. Небольшое пожелание - помещайте, пожалуйста, видео с одной темой в плейлисты. Допустим, все лекции по шаблонам в один плейлист.
Слушать вас интересно, но хотелось бы обратить внимание на пару моментов: прогресс не стоит на месте и в #c++11 можно без проблем сделать потокобезопасный синглтон безо всяких ухищрений. Если рассматривать пример на #PHP, то PHP4 это очень плохой пример, начиная с версии 5, PHP сильно шагнул вперед в плане ООП.
***** В лекции приводится пример с двумя классами Dog и Cat, имеющими одинаковый метод voice(), который мы можем вызывать не задумываясь о конкретной реализации, это скорее относится к наследованию и иерархичности объектов. А полиморфизм проявляется наличием нескольких одинаковых методов в одном классе, но с разной сигнатурой. Классический пример: класс Calculator может иметь несколько методов sum() с разными типами аргументов - один для сложения целых чисел, второй для комплексных, третий для чисел с плавающей точкой, четвертый для сложения строк, при этом какой конкретно из них вызвать будет решать компилятор, в зависимости от того с какими параметрами мы его вызываем.
Алексей Сумин есть разные виды полиморфизма. То про что вы говорите - это adhoc полиморфизм. В лекции - subtyping полиморфизм. Фразеология очень сильно зависит от того, какой конкретно ЯП обсуждается. Обычно, когда говорят просто "полиморфизм", без уточнения, имеют в виду именно перегрузку виртуальных методов, а не набор методов с одним именем и разными параметрами. Строго говоря, в языке программирования может вовсе не быть конструкции, которая позволит иметь два метода Sum с одинаковыми параметрами в одном классе, и это все равно будет ООП язык с полиморфизмом.
Просто отличная лекция! ООП вообще блестяще расставлены акценты. Спасибо, Сергей.
Небольшое пожелание - помещайте, пожалуйста, видео с одной темой в плейлисты. Допустим, все лекции по шаблонам в один плейлист.
Сергей, отлично преподаете!
Слушать вас интересно, но хотелось бы обратить внимание на пару моментов: прогресс не стоит на месте и в #c++11 можно без проблем сделать потокобезопасный синглтон безо всяких ухищрений. Если рассматривать пример на #PHP, то PHP4 это очень плохой пример, начиная с версии 5, PHP сильно шагнул вперед в плане ООП.
Спасибо. Теперь можно увидеть то, что не видно на видео.
Thanks so much for this video tutorial.
супер. спасибо
Спасибо. А Вы выложите презентации?
Полиморфизм неправильно раскрыт, полиморфизмом называется способность функции обрабатывать данные разных типов.
***** В лекции приводится пример с двумя классами Dog и Cat, имеющими одинаковый метод voice(), который мы можем вызывать не задумываясь о конкретной реализации, это скорее относится к наследованию и иерархичности объектов.
А полиморфизм проявляется наличием нескольких одинаковых методов в одном классе, но с разной сигнатурой. Классический пример: класс Calculator может иметь несколько методов sum() с разными типами аргументов - один для сложения целых чисел, второй для комплексных, третий для чисел с плавающей точкой, четвертый для сложения строк, при этом какой конкретно из них вызвать будет решать компилятор, в зависимости от того с какими параметрами мы его вызываем.
Алексей Сумин я не программист, но то что Вы описали называется перегрузкой методов, а вот пример с собакой и кошкой - полиморфизм
Алексей Сумин
есть разные виды полиморфизма. То про что вы говорите - это adhoc полиморфизм. В лекции - subtyping полиморфизм. Фразеология очень сильно зависит от того, какой конкретно ЯП обсуждается. Обычно, когда говорят просто "полиморфизм", без уточнения, имеют в виду именно перегрузку виртуальных методов, а не набор методов с одним именем и разными параметрами. Строго говоря, в языке программирования может вовсе не быть конструкции, которая позволит иметь два метода Sum с одинаковыми параметрами в одном классе, и это все равно будет ООП язык с полиморфизмом.
slideshare . net