什么是抽象类:
在Java中方法隐藏具体的实现细节的类,在父类中有一些方法必须要让子类重写,那这样的方法就叫抽象方法(父类规定子类重写的方法,子类就必须重写,否则就会报错,重写的方法由父类来决定)。在父类中有一些不需要子类重写也就是说某些子类可以重写这个方法,也可以不重写这个方法,这样的方法就叫普通方法。
为什么要使用抽象类呢?
1.因为有的时候父类的方法的逻辑基本上没有任何用处,所以隐藏父类方法的实现,让子类完成具体实现的细节。
2.有的时候父类描述的比较宽泛,比如:Person父类中的study方法用在Student子类比较合适,用在Worker子类反而不太恰当,当然这个例子不太恰当,因为学无止境嘛...
3.提高代码的复用性,在父类中定义的某些方法,子类必须要完全重写,在父类定义的其他的方法,子类可以不重写,也就是说决定权在父类。
我们该如何创建抽象类:
1.如何创建抽象类在类的声明上使用关键字abstract
2.如何创建抽象方法在类的内部方法上使用关键字abstract并且要记住抽象类没有方法体。
抽象类在Java中的存在规则:
- 在抽象类中可以有抽象方法,也可以有普通方法
- 在抽象类中,可以有变量也可以有常量
- 如果有一个类中有抽象方法,那么这个类,必须是抽象类
- 抽象类虽然有构造方法,但不允许通过构造方法来创建本类对象
- 抽象类只能通过多态的形式来实例化对象
- 抽象类是可以继承抽象类的,但是必须要有子类来实现所有继承的抽象方法
- 抽象类可以单继承但是不能多继承
- 抽象类的声明及抽象方法不可以使用final修饰,也不可以使用static修饰