抽象类的概念:是使用关键字abstract修饰的类就是抽象类;
抽象类的产生:当多个不能相互继承的类具有相同的功能时,就需要将共同的信息向上抽取,放到公共的父类中;如果公共的父类只能描述所有子类都具有的功能,但描述不清功能的具体实现,就需要将该函数定义为抽象的,使用关键字abstract修饰;如果一个类中出现了抽象的函数,说明这个类也是不具体的,应该定义为抽象类,使用abstract修饰;
抽象类的特点:
1.抽象类不能实例化;
2.抽象类中的抽象函数必须由子类去实现,否则子类也是抽象类;
3.抽象类有构造函数,是供子类创建对象时使用的;
4.因为抽象函数必须由子类实现,所以不参与继承的(private)和不能被子类重写的(final)关键字不能和abstract共存;
5.因为静态函数不需要类的对象就可以直接使用,所以static关键字也不能和abstract共存;
6.抽象类中可以书写所有成员,也可以没有抽象函数;
7.如果一个类不希望被实例化,但又希望被子类继承,就可以定义为抽象的,即使类中没有抽象函数;