你想问抽象类和接口的区别?????
还是淡出的想知道子类继承父类,和子类实现接口的区别?
子类只能继承一个父类,但是可以实现多个接口
父类中的成员信息都是对事物(对象)本质的抽取
而接口中的成员都是对事物拓展功能的抽取
比如,一个Person类中,姓名,性别,年龄这三个属性,以及吃饭睡觉等都是属于人的本质
而如果是讲英语,打乒乓球等这种就属于拓展功能,我们可以用接口来定义
或者说个简单的,一个Animal类(父类),有name,age属性,eat(),run()方法这些都是事物本质的问题,所以可以放在父类中,让子类继承,子类就有一个Cat,一个Dog
然后狗和猫都继承了Animal类的eat()和run()方法,但是狗还有一个特殊的技能,握手,猫有一个特殊的技能,装死```
那么,我们就可以定义一个接口,叫卖萌,然后狗和猫分别实现这个接口,
当然,你会说,这个时候用抽象类也可以哇,在Animal类中再声明一个抽象方法,就搞定了
这样虽然实现了这个需求,但是不符合设计模式(我前面说过,接口就是对事物拓展功能的抽取)
废话了那么多,希望对你有些帮助吧 |