小波です.

次のようなことを実現したいのですが,可能でしょうか?

class Cat
  def initialize(name,age,sex)
      @name = name; @age = age; @sex = sex
  end
  def hoge
  end
  ...
  ...
end

mike = Cat.new("みけ",4.5,"F")
tama = Cat.new("たま",3.8,"M")

というふうにCatクラスを定義して,そのオブジェクト(インスタンス)
である mike, tama を生成したとします.
そのあと,たとえば次のような形でこれらのオブジェクト間の演算
を定義することはできるでしょうか.

babycat = mike + tama

ここで Cat クラスに属する2個のオブジェクト同士の + の演算は,
mike と tama の性質から導かれるもので,たとえば上記のように
して両親の性質をまぜた子猫を作るものとします.

また別にたとえば

puts Cat.fight(mike,tama)

みたいな形で,mike, tama のもつ性質を利用して勝ち負けを決めて
"みけの勝ち!" といった出力を得るようにすることはできる
でしょうか.

mike.fight(tama) という形のメソッドなら簡単なのですが...