话题从重用开始说起: 最基本的重用,重用一个方法,被重用的逻辑被抽取封装成为方法,之后我们把方法当成一种工具来使用(处理数据,输入输出,或者改变状态). 来到了面向对象的时代,如果这个方法出现父类上面就是继承,如果这个方法出现在其他对象上就是代理,如果子类想要重用父类的接口又不想重用实现那么就是多态. 但是这些重用都是基于相同的数据类型,方法创建出来后接收参数都是固定的类型,对于多态,可以通过子类来实现不同行为,但是方法总归还是接收一个固定父类型(或者接口)参数. 想想有没有这样的需求,两个完全