一开始接触多态的时候,以为是一个对象有多个形态,比如一只猫是一只宠物,但是慢慢的发现,这样的概念其实是不对的.
正确的多态的定义:多态是同一个行为具有多个不同表现形式或形态的能力.
行为就是程序里面的方法,那么什么时候会出现同一个方法具有多个不同的表现形式呢?当然是方法重写.
然后就产生了两个问题,(首先当然得排除祖先Object)
第一个:如果继承了父类,但是没有实现父类的方法,那么可以算多态吗?这个我的回答是,算.如果你所有的子类都没有重写方法,那就没必要用继承,而如果一定重写了方法,那么就实现了多态.
第二个:如果父类没有方法,只有属性,那么继承了这个父类算多态吗?这个问题说实话,很难,但是不算.而且不管你怎么写,你都不会出现一个类里面只有属性的话出现了继承或者实现类.突然发现自己这个问题好像也确实挺白痴的.
关于多态的纠正
最新推荐文章于 2021-03-01 19:16:28 发布