Тёмный

Раннее и Позднее Связывание 

Volodya Mozhenkov
Подписаться 49 тыс.
Просмотров 41 тыс.
50% 1

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

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 70   
@roman-romadin
@roman-romadin 6 лет назад
Спасибо! Лучший стиль преподавания! Если бы так в универах преподавали ...
@grommaks
@grommaks 4 года назад
В почти универе так) как я понял из вступления)
@me_000_xXx
@me_000_xXx 4 года назад
Спасибо 🖐️Искал аналогию virtual-метода в java, и, как оказалось, в java все методы виртуальные и нет надобности в отдельном кейворде аля virtual. И Володя это же рассказал. Прикольно)
@turalbadalov480
@turalbadalov480 6 лет назад
Автор, правы ли вы называя ранее связывание статической типизацией? Думаю нет. Вот если бы назвали статическим связыванием , то считаю было бы верно. Ведь статическая типизация это совсем иное, и кстати, Java статически типизированный язык (с динамическим связыванием, хотя статическое связывание в java тоже есть). Статическая типизация это когда мы в момент объявления знаем тип объекта, например String str; А есть языки в которых этот тип не пишется, это языки с динамической типизацией. Вывод: то о чем вы говорите называется статическое и динамическое связывание и в java все таки есть и статическое связывание тоже. Казалось бы ну откуда в Java раннее связывание? А как же статические методы? вот пример, javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java где показывается существование статического связывания и кстати JVM помечает такие методы и с помощью спец команд можно увидеть эти пометки в консоли.
@casusbelli9326
@casusbelli9326 6 лет назад
В видео перепутаны такие понятия, как типизация (typing) и диспетчеризация (dispatch).
@tebesvet
@tebesvet 2 месяца назад
@@casusbelli9326 да, такие видео только больше каши в голове создадут.
@mgevlich
@mgevlich 9 лет назад
Отлично рассказываете. Единственное хотел увидеть больше примеров, не только с виртуальными функциями, но и динамически создаваемыми объектами и указателями.
@mrakobes228
@mrakobes228 5 месяцев назад
Метод потомка вызовется, если метод переопределён, если метод не переопределён или перегружен, или имеет модификаторы (private,static,final) вызовется метод родителя родителя!!!!!!!!!!! ЧЁ орать то!!!ГЫЫЫ!!!
@AlexeyNeklesa
@AlexeyNeklesa 9 лет назад
Молодец. Однозначно подписываюсь. Очень понравилось.
@splashattacks9714
@splashattacks9714 8 лет назад
А как же в Java статические и приватные методы, они же не являются виртуальными,так получается не все связывание в Java позднее?
@maxlich9139
@maxlich9139 7 лет назад
Да, судя по информации в интернете (в идеи надо в документацию к Джаве лезть), приватные методы, статические методы, методы, помеченные модификатором final, и конструкторы используют раннее связывание.
@june3878
@june3878 3 года назад
@@maxlich9139 у java есть документация? 😳
@maxlich9139
@maxlich9139 3 года назад
@@june3878 а куда она делась? О_о
@june3878
@june3878 3 года назад
@@maxlich9139 это нельзя назвать документацией)
@alexpavlov9097
@alexpavlov9097 5 месяцев назад
а что можно назвать документацией?
@Дмитрий_Ник
@Дмитрий_Ник 4 года назад
public class Test { public static void main(String[] args) { A a = new B(); int get = a.get(); String foo = a.foo(); System.out.println("get: " + get); System.out.println("foo: " + foo); } } class A { public int get() { return 100; } public static String foo() { return "foo1"; } } class B extends A { public int get() { return 200; } public static String foo() { return "foo2"; } } get: 200 foo: foo1
@Qnoize
@Qnoize 4 года назад
все верно в Java раннее связывание будет если метод static, final, private
@ataganatagan2397
@ataganatagan2397 6 лет назад
В java есть статическое/раннее связывание
@Qnoize
@Qnoize 4 года назад
в Java 2 типа связывания: раннее, если методы static, private или final. В остальных позднее
@avazart614
@avazart614 4 года назад
@Боня Ферзь Но не логично для С++ так как там virtual может быть private.
@artemsliusar1282
@artemsliusar1282 7 лет назад
Здравствуйте. Подскажите, пожалуйста, Вы говорите, что динамическая типизация = позднее связывание. Но ведь Java - это язык со статической типизацией и поздним связыванием (в большинстве случаев). Т.е. как-то неодназначно.
@dentor2005
@dentor2005 4 года назад
javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java
@the2x548
@the2x548 4 года назад
Я не понимаю, как foo(A a) вызывает a->get()
@june3878
@june3878 3 года назад
Например так: foo(A a) { a.get(); }
@kipa3006
@kipa3006 8 лет назад
Не могли бы вы привести пример в котором использовалось бы раннее связывание? Где может быть применим такой способ связывания? Как вы уже говорили, во многих языках такой возможности нет вовсе - бывают ли ситуации, в которых есть острая потребность в раннем связывании, или такая возможность представляет скорее академический интерес?
@yanslow9083
@yanslow9083 Год назад
Java static, final, overload, все - раннее связывание
@user-mcm
@user-mcm 3 года назад
Не могу не оставить комментарий , я не программист в прямом смысле , занимаюсь управлением промышленного оборудования, но стало то время когда приходится освоить немного классического из пк , ролики просто офигенные и мне понятные , в любом случае весь принцип написания кода повторяет друг друга вне зависимости от среды написания что облегчает понимания :)
@Mark_Sher_
@Mark_Sher_ 7 лет назад
Было бы неплохо если бы Вы нумеровали видео, тогда было бы понятно в какой последовательности смотреть.
@kgaussss7299
@kgaussss7299 4 года назад
Ох как же этого не хватает!
@JIockjoy
@JIockjoy 2 года назад
Да, уж и зачем я связался.
@Anton-ws8jn
@Anton-ws8jn 9 лет назад
Помоему это больше к полиморфизму относится, а не к связыванию. К примеру в .NET к позднему связыванию относится загрузка сборок во время выполнения программы и инстанциирование типов находящихся в них с последующим использованием их функционала. Поправьте если я не прав.
@VladimirMozhenkov
@VladimirMozhenkov 9 лет назад
Антон Самошин Дело в том, что я .NET не знаю, так что не совсем понимаю о чём идёт речь. Можете объяснить что такое "сборки".
@Anton-ws8jn
@Anton-ws8jn 9 лет назад
Vladimir Mozhenkov сборка в данном варианте просто обычная dll которая подгружается во время работы программы. К примеру у нас есть некий графический редактор, а в отдельной dll лежит какой нибудь плагин к нему и на этапе работы программы пользователь подгружает эту dll и задействует ее функционал (вызываются методы/функции классов из этой dll) тем самым осуществляется позднее связывание
@VladimirMozhenkov
@VladimirMozhenkov 9 лет назад
Антон Самошин Ясно вы про компиляцию и использование библиотек. Это не только в .NET - это везде так, но я никогда не слышал чтобы это называли ранним и поздним связыванием. Термины, которые мне всегда встречались - это статическое и динамическое связывание. В IT вообще очень часто бывает, что одни и те-же слова используются поразному в зависимости от контекста. И плюс тут ещё вопрос английского и русского языков. Когда начал читать ваш первый комментарий, подумал, что может вы говорили про ленивую инициализацию, которую также называют поздней иногда. Это опять-же совершенно другое понятие, никак не связаное с тем, о чём я говорил в этом конкретном видео.
@hatami74
@hatami74 10 месяцев назад
Самое лучшее объяснение, которое встречал
@undersun6301
@undersun6301 6 месяцев назад
Так доходчтво тему позднего связывания никто не обьяснял.❤
@victorzedwings
@victorzedwings 6 лет назад
*когда во время исполнения??? во время вызова или во время загрузки??? или во время создания экземпляра класса???*
@ПётрФомин-я3ж
@ПётрФомин-я3ж 9 лет назад
в rust есть zero cost abstraction благодаря которому не происходит поиска метода во время исполнения проги
@aleksandrkravtsov8727
@aleksandrkravtsov8727 5 лет назад
ну я хз, когда в конце чувак говорит "с вопрсами зачем это" это не сюда это по моему не ок. можно было и какой нибудь пример на пальцах показать) там массив разных зверей стандардатный или что там показывают. не все же сразу сообразят где на практике это исползовать
@вахидразбамбеков
@вахидразбамбеков 2 года назад
мужик красава! я тугодум даже понял!
@ДмитрийБузницкий-б3н
Спасибо, Володя. Хорошо объяснил. :)
@alexmur07
@alexmur07 6 лет назад
четко объяснил. не прибавить не убавить. если твои падаваны тебя не понимут, то им в детсад надо.
@kirillnorkin8283
@kirillnorkin8283 4 года назад
Володя, ты выносишь мне мозг, благодарю)))
@bennails3447
@bennails3447 4 года назад
Правильный Володя. Лайк и подписка👍
@VictorThD
@VictorThD 6 лет назад
А в языке С тоже есть динамическая типизация?
@Federation1323
@Federation1323 3 года назад
Объяснения: уровень Бог
@MrRomanvideo
@MrRomanvideo 4 года назад
Это тоже самое что компайл и рантайм полиморфизм?
@ilya9852
@ilya9852 Год назад
Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).
@aojona
@aojona Год назад
и static
@ninjacheese2168
@ninjacheese2168 4 года назад
Поздняя типизация. ОК.
@eb6006
@eb6006 Год назад
Круто! Все встало на свои места!
@me2beats313
@me2beats313 4 года назад
видимо нужно для скорости
@ironmelon_nurbirion
@ironmelon_nurbirion 3 года назад
Спасибо огромное!!!
@gagogoga794
@gagogoga794 4 года назад
Бог компуктеров!!!
@keyrea1
@keyrea1 7 лет назад
Каеф) Супер доступно, даже для того, как я) Спасибо)
@ВсеволодЗорин-л6н
спасибо Вам. Уяснил разницу.
@yauhenizakhno8510
@yauhenizakhno8510 5 лет назад
Немного понял, но не совсем
@АлексИванов-ы9ч
@АлексИванов-ы9ч 2 года назад
Человечище!)
@ДмитрийМаксаров-э9ф
я подписался с удовольствием!
@antonbeton5738
@antonbeton5738 7 лет назад
Крутое видео
@arcsin4083
@arcsin4083 5 лет назад
Спасибо!
@AndreyDelay
@AndreyDelay 4 года назад
круто) такого наставника бы в работе
@VladimirMozhenkov
@VladimirMozhenkov 4 года назад
Я занимаюсь репетиторством через интернет... если что.
@mailmeeeee
@mailmeeeee 7 лет назад
Посмотри на оформление своих видео в листинге и скажи: о чем оно? Посмотри на описание своего видео? и скажи: о чем видео то? Я только из комментов понял, что речь про Java...
@maxlich9139
@maxlich9139 7 лет назад
какая джава?! он использует язык с++
@mailmeeeee
@mailmeeeee 7 лет назад
вот и я про то же)) даже из комментов нихера не понятно о чем речь идет=)) гений маркетинга) код документирует наверное так же))
@maxlich9139
@maxlich9139 7 лет назад
Да, это минус, что он не указывает язык. Я давно изучал си++ и уже не сильно хорошо помню его синтаксис, поэтому смотрю на год, и гадаю, какой это язык (а сейчас там много си-подобных языков)
@sammeroff
@sammeroff 6 лет назад
Причем здесь язык? Это понятия из ООП, которые относятся к любому ООП языку.
Далее
Functor или Объект-Функция
10:30
Просмотров 8 тыс.
Абстрактный класс в ООП
10:28
Просмотров 40 тыс.
Катаю тележки  🛒
08:48
Просмотров 633 тыс.
Наследование
12:31
Просмотров 30 тыс.
Когда ООП поможет вам?
8:48
Просмотров 12 тыс.
Принципы ООП. 3. Полиморфизм
9:04
Интерфейс в ООП
13:46
Просмотров 44 тыс.
Java. Enum на примерах.
18:34
Просмотров 10 тыс.
Агрегация и Композиция
19:49
Просмотров 56 тыс.