1、什么情况下会用到抽象类
(1)当父类需要表明他的子类们应该具备什么样的功能(方法),但是在父类中又无法给出具体的实现,例如:图形类Graphic,觉得他的子类们应该具备getArea求面积,getPremeter()求周长,但是在父类中又无法给出合理的具体实现,那么在父类中把这样的方法声明为抽象的方法,一个类包含抽象方法,这个类就应该是抽象类。
(2)当父类仅仅用于表示一个抽象的概念,不希望使用者直接创建它的对象,而是在使用者去创建它更具体的子类的对象,那么这样的父类,虽然没有抽象方法,但是也会被设计为抽象类。
2、如何声明抽象类
抽象类的声明格式:
【修饰符】 abstract class 类名 【extends 父类】 【implements 接口们】{
}
3、抽象类的特点
(1)不能实例化(不能直接创建对象)
(2)如果一个类包含抽象方法,那么这个类必须是抽象类
(3)当然一个抽象类,可以没有抽象方法
(4)抽象类就是用来被继承的,子类继承抽象父类,那么一定要实现(重写)父类的抽象方法,否则这个子类也得是抽象类。
(5)抽象类可以与子类的对象之间构成多态引用。
(6)抽象类可以和普通类一样,具有属性、构造器、代码块、非抽象方法(静态的、非静态)、内部类等所有的成员。