抽象类引出
我们定义一个父类
比如说动物,细分到每一个动物我们知道他们爱吃什么
但是动物的话,就有不确定性,你可能会写这是一个动物,不知道爱吃什么(明显是瞎写的,就等着继承改变这句话,来输出重写的方法,这个时候父类的方法体就显的不那么重要,甚至有点多余)
这个方法不能确定怎么去实现,你又不想硬去实现
这个时候就可以用到我们的抽象类(抽象方法)
抽象类关键字
abstract
抽象方法
简单来说就是没有实现的(方法体)方法
抽象方法一定在抽象类中,所以也要把类改成抽象类
定义方式是abstract 访问修饰符 返回类型 方法名();
或者 访问修饰符 abstract 返回类型 方法名();
之后就是子类的重写喽
抽象类的继承
抽象类的抽象方法一般通过子类重写实现
而且继承抽象类的类一定要重写抽象类的抽象方法(除非该类也是抽象类)
抽象类的作用
抽象类的作用相当于一个大体框架,框架弄好了,然后让子类进行具体实现,更多作用是用于设计
抽象类使用注意细节
1.抽象列不能实例化
2.抽象类不一定要包含abstract方法(可以不含抽象方法)
3.含抽象方法的一定是抽象类
4.abstract只能修饰类和方法(不能修饰属性和其他的)
5.抽象类可以有任意成员(非抽象方法,构造器,静态属性等等)
6.抽象方法不能有方法体(实现)
7.如果一个类继承了抽象类,必须重写这个抽象类的所有抽象方法(除非这个类也是抽象类)
8.抽象方法不用static,final和private修饰,因为这与重写相违背