为什么需要抽象类?
当一个父类的方法被它的子类们重写时,子类各自的实现都不相同,那么父类中的方法声明跟方法体,只有方法声明有意义。(换句话说,就是父类知道子类有哪些功能,却不知道具体怎么实现,父类就提供了一个没有方法体的方法签名就可以了)
抽象方法:
我们把没有方法体的方法成为抽象方法(在方法前面添加一个关键字abstract)
特点:
1.抽象方法没有方法体
2.抽象方法必须定义在抽象类 或 接口(在类前面加上了一个abstract 就成为了抽象类)
3.抽象方法不能是私有的private,不能使用final修饰,不能同时使用static
子类必须要去覆盖此方法
在定义的时候不要方法体
抽象类:
java语法规定,包含抽象方法的类就是抽象类
抽象类必须要有子类才行(抽象类一般都当做父类来继承)
抽象类当中的注意点:
1.抽象类是不能直接创建对象的
2.抽象类当中,可以有抽象方法跟非抽象方法
3.子类没有去覆盖此方法,把子类也变成抽象类
4构造方法不能定义为私有化
5.抽象类不能使用final去修饰
抽象类跟普通类的区别?
抽象类其实是一个不完整的类,需要成为父类,子类才能完成对应的功能
命名:
抽象类命名时,都喜欢在类名前面添加一个Abstract
普通类有额(方法,字段,构造器),抽象类都有
抽象类不能创建对象,抽象类可以包含抽象方法,也可以包含非抽象方法
抽象类必须要有子类才有意义