Kornfeld Eliyahu Peter
Удивительно, что вы не спросили, как это возможно, что вы можете добавлять числа и строки и не получать никаких ошибок...
Хотя совершенно верно, что арифметическое сложение не имеет порядка, я не могу понять, на каком основании вы ожидаете, что ваша арифметика сложения будет такой...
Java выбрала способ сделать свою работу-хорошо или плохо - и привести две стороны сложения к наименьшему общему знаменателю (означает приведение к типу, которым могут быть оба)...
Поскольку сложение-это последовательность (вы всегда добавляете два значения), приведение будет сделано только тогда, когда оно должно быть сделано...
Итак, первая версия такова ((2+3)+"bc")
, и первая часть-это фактическое арифметическое сложение, которое приводит к 5, и только второе сложение заставляет Java выполнять динамическое приведение.
Во второй версии дополнение на самом деле (("bc" + 2) + 3)
, и здесь самое первое дополнение заставляет java бросать, а оттуда все дополнения делают то же самое...