【Java】抽象类与抽象方法

为什么需要抽象类?

  当一个父类的方法被它的子类们重写时,子类各自的实现都不相同,那么父类中的方法声明跟方法体,只有方法声明有意义。(换句话说,就是父类知道子类有哪些功能,却不知道具体怎么实现,父类就提供了一个没有方法体的方法签名就可以了)

抽象方法:  

  我们把没有方法体的方法成为抽象方法(在方法前面添加一个关键字abstract)

特点:

  1.抽象方法没有方法体

  2.抽象方法必须定义在抽象类 或  接口(在类前面加上了一个abstract 就成为了抽象类)

  3.抽象方法不能是私有的private,不能使用final修饰,不能同时使用static

  子类必须要去覆盖此方法

  在定义的时候不要方法体

抽象类:

  java语法规定,包含抽象方法的类就是抽象类

抽象类必须要有子类才行(抽象类一般都当做父类来继承)

  抽象类当中的注意点:

1.抽象类是不能直接创建对象的

2.抽象类当中,可以有抽象方法跟非抽象方法

3.子类没有去覆盖此方法,把子类也变成抽象类

4构造方法不能定义为私有化

5.抽象类不能使用final去修饰

 抽象类跟普通类的区别?

  抽象类其实是一个不完整的类,需要成为父类,子类才能完成对应的功能

命名:

  抽象类命名时,都喜欢在类名前面添加一个Abstract

普通类有额(方法,字段,构造器),抽象类都有

抽象类不能创建对象,抽象类可以包含抽象方法,也可以包含非抽象方法

抽象类必须要有子类才有意义

 

原文地址:https://www.cnblogs.com/Cccc4/p/13160874.html