面向对象程序中,往往很容易把对象的属性和继承关系搞混淆,怎么能简单明了的区分呢?可以用is a ,has a来区分
例如有一个父类叫动物 :animal、动物的子类有鸟,狗,鱼:bird、dog、fish、
这时我们可以用 is a 来判断,他们的继承关系,鸟是动物所以鸟是子类,动物是父类。狗是动物所以狗是子类,动物是父类,鱼是动物所以鱼是子类,动物是父类。
上面的动物都有什么特征呢?鸟有翅膀,狗有尾巴,鱼有鳃
我们用has a来判断对象的属性,那么翅膀就是鸟的属性,尾巴就是狗的属性,鳃就是鱼的属性
用is a和has a可以快速简单的判断出继承关系和对象的属性