一直以来,对接口和抽象类了解都不是很深,前天看了下,有了少少心得。
接口应该是用得最多的,为什么?就应为一个类可以实现多个接口,但它只能有一个基类。在这里,基类我们指的是抽象类,具体类由于什么都实例化了,改起来麻烦,所以最好不用具体类。
抽象类有个好处就是,它可以有方法的具体实现,也可以不写方法的具体实现,而接口里是没有具体实现的。
一个类如果实现一个接口,那它必然要实现接口里的所有方法,而如果是扩展一个抽象类的话,子类里可以什么都不写或只写部分。
看到这里,对接口和抽象类该了解了不少吧,那么,有没有办法将二者的优点都体现,而尽量屏蔽它们的缺点呢?答案是有。在java编程里,“第三者原则”是很重要的,这个原则是我的说法。“第三者原则”就是说,原来是直接继承的,现在在继承关系里再插入第三者,目的只有一个,即降低耦合度。怎么个降低法?。。。。。这个你自己去体会。虽然增加“第三者”对于现在来说,麻烦了一点,但是,其后期维护带来的方便使得现在这点麻烦近乎没有。
现在,我们来说说怎么接合2者的优点吧。首先,最上层是接口,接着往下就是抽象类,再最后就是子类了。抽象类实现接口,子类继承抽象类。有什么好处?自己好好想想,说得没意思。
最后,再说一句,正由于继承的存在,所以我们定义类型的时候,尽量不用最下层的类型,好处我也不说,自己体会。
接口应该是用得最多的,为什么?就应为一个类可以实现多个接口,但它只能有一个基类。在这里,基类我们指的是抽象类,具体类由于什么都实例化了,改起来麻烦,所以最好不用具体类。
抽象类有个好处就是,它可以有方法的具体实现,也可以不写方法的具体实现,而接口里是没有具体实现的。
一个类如果实现一个接口,那它必然要实现接口里的所有方法,而如果是扩展一个抽象类的话,子类里可以什么都不写或只写部分。
看到这里,对接口和抽象类该了解了不少吧,那么,有没有办法将二者的优点都体现,而尽量屏蔽它们的缺点呢?答案是有。在java编程里,“第三者原则”是很重要的,这个原则是我的说法。“第三者原则”就是说,原来是直接继承的,现在在继承关系里再插入第三者,目的只有一个,即降低耦合度。怎么个降低法?。。。。。这个你自己去体会。虽然增加“第三者”对于现在来说,麻烦了一点,但是,其后期维护带来的方便使得现在这点麻烦近乎没有。
现在,我们来说说怎么接合2者的优点吧。首先,最上层是接口,接着往下就是抽象类,再最后就是子类了。抽象类实现接口,子类继承抽象类。有什么好处?自己好好想想,说得没意思。
最后,再说一句,正由于继承的存在,所以我们定义类型的时候,尽量不用最下层的类型,好处我也不说,自己体会。