抽象类:在面向对象领域,抽象类主要用来进行类型隐藏,那什么是类型隐藏呐?
我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式,这个抽象描述就是抽象类,而这一株任意个可能具体实现则表现为所有可能的派生类,好比,动物是一个抽象类,人、猴子、老虎就是具体实现的派生类,我们就可以用动物类型来隐藏人、猴子和老虎的类型。
抽象类和接口的区别:抽象类在Java语言中表示一种继承关系,一个类只能使用一种继承关系,但是大家都知道的是,接口可以多实现,也许这是Java语言的设计者在考虑Java对于多继承的支持方面的一只折中考虑吧
接口和抽象类的相同处:都不能被实例化,都是可以包含抽象方法的。
抽象类是用来扑捉子类通用特性的,它不能被实例化,只能被用做子类的超类,抽象类是被用来创建继承层级子类的模版。