抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是一个抽象的过程。要抽象,就必须进行比较,没有比较就无法找到共同的部分。
抽象类:
在父类中只定义类的骨架,只有方法的定义,没有方法体。也就是说没有方法的实现。而让方法的实现在类中根据具体的需要去完成,增加类设计的灵活性,加强类的管理。
在抽象的类中至少有一个方法是抽象的,也就是含有抽象方法的类必须定义为抽象的,抽象中也可含有具体实现的方法。
抽象方法:
只有方法定义,没有方法实现,必须用abstract修饰。
特征:含有抽象方法的类必定是抽象的类,抽象类所有的方法并非都是抽象的 。
抽象类的子类必须实现所有的抽象方法,否则该类还是一个抽象的类。
因为抽象类不能实例化对象(为什么?),那么抽象类是否含有构造方法呢?
抽象类含有构造方法,但却不能构造对象,原因是抽象类中含有没有实现的方法,如果可以构造,对象那么这个对象不知道是什么东西。这个对象实体是不完整的。例如 水果是一个抽象类,那么有不有一个叫做水果的东西呢?
答案是显而易见的。