参照型の変数には、本体であるオブジェクトの参照を変数に格納します。この参照はいくつあっても構いません。そのため、複数の変数に、同じオブジェクトに対する参照が格納されるといった事態が発生します。
┏━━━┓ ┏━━┓ ┏━━━━━━━━━┓ ┃変数A┃←格納─┃参照┃……:……┃オブジェクト(本体)┃ ┗━━━┛ ┗━━┛ : ┗━━━━━━━━━┛ ┏━━━┓ ┏━━┓ : ┃変数B┃←格納─┃参照┃……: ┗━━━┛ ┗━━┛ : ┏━━━┓ ┏━━┓ : ┃変数C┃←格納─┃参照┃……: ┗━━━┛ ┗━━┛
複数の参照がある場合、たとえば変数Aで、参照を利用して、本体であるオブジェクトの値を書き換えた場合は、変数Bや変数Cから参照しているオブジェクトも同じものなので、値が書き換わっています。
┏━━━┓ ┏━━┓ ┏━━━━━━━━━┓ ┃変数A┃─利用→┃参照┃…書き換え…→┃オブジェクト(本体)┃ ┗━━━┛ ┗━━┛ ┗━━━━━━━━━┛ ↓ ┏━━━┓ ┏━━┓ ┏━━━━━━━━━┓ ┃変数A┃────┃参照┃………:……→┃オブジェクト(本体)┃ ┗━━━┛ ┗━━┛ : ┗━━━━━━━━━┛ ┏━━━┓ ┏━━┓ : ※ 書き換わっている ┃変数B┃────┃参照┃………: ┗━━━┛ ┗━━┛ : ┏━━━┓ ┏━━┓ : ┃変数C┃────┃参照┃………: ┗━━━┛ ┗━━┛
こういった挙動は、参照型の変数の利用に慣れていないと混乱する部分です。こういったことが起きるということを、頭の片隅に置いておいてください。