「掛け算」と名の付くものは多数存在していいからね
プログラミング言語で言えば「オーバーロード」だね

Javaで掛け算「multi(x,y)」を定義するとすると、算数の
「(ひとつ分)×(いくつ分)」を「multi(HitotsuBun x,IkutsuBun y)」と定義すること
になる
この時「HitotsuBun a;IkutsuBun b;」を「multi(b,a)」と使おうとしてもコンパイル
エラーになるだけ
「multi(IkutsuBun x, HitotsuBun y)」が定義されない限り「交換法則」も何もない
これが、現状の算数の実情をよく表しているだろうね

二項演算の一般の場合として集合A,B,Cに対し2変数の写像f:A×B→Cを形式もあるのだ
からとやかく騒ぐことでもないと思うけどね

ちなみに二項演算での集合は表記の分だけ組み合わせが存在するね
とりあえず「整数」「小数」の表記に対して、以下のJavaのメソッドを変更すること
なく、「*(/)」やシフトを用いず、実際に実行可能になるように足りないメソッドを
追加して実装してみるといいと思うよ
これができたら「分数」「文字列」「平方根」「複素数」「行列」等々に挑戦してみようw

public void testMulti(){
Integer a=2, b=3;
Double c=2.3, d=5.7;

System.out.println("multi(a,b)=" + multi(a,b));
System.out.println("multi(a,c)=" + multi(a,c));
System.out.println("multi(c,a)=" + multi(c,a));
System.out.println("multi(c,d)=" + multi(c,d));
}