你的问题真的太多了
1.  这个地方把t_p2传给object o是不是向上转型?是传的引用地址吗?
     是的
2.  这里是把t_p1的引用地址赋给p1吗?
     是的,this是指向当前对象的引用,t_p1调用的则this指向的就是t_p1
3.  这里p2引用的地址是不是还是t_p2?
     是的,是同一个对象,引用类型不管怎么变,其实都还是同一个对象
4.  这里完全看不懂
      这个判断最外面又加了一个!,所以弄的有点混乱,其实就是判断 两个对象的name或者age至少有一个不相同
5.  为什么这句话看不见效果?
     if条件不成立,当然看不到效果了
另外我想说的是你的程序判断逻辑是有问题的,具体怎么修改我就不说了,你自己想想吧。