一、引出
方法不知道怎么写,写了也没意义,不如写成抽象方法╮(╯3╰)╭
- 所谓抽象方法就是没有实现的方法
- 所谓没有实现就是指,没有方法体
- 当一个类中存在抽象方法时,需要将该类声明为abstract类
二、抽象类介绍
-
用abstract关键字来修饰一个类时,这个类就叫抽象类
【 访问修饰符 abstract 类名 { } 】
abstract class BB {//抽象类
abstract public int AA() ;//抽象方法,没有{}(方法体)
}
- 用abstract关键字来修饰一个方法时,这个方法就是抽象方法
【 访问修饰符 abstract 返回类型 方法名(参数列表);】/没有方法体 - 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现
抽象类()
三、使用细节
-
抽象类不能被实例化
-
抽象类不一定要包含abstract方法。也就是说,抽象类可以没有abstract方法
-
一旦类包含了abstract方法,则这个类必须声明为abstract
【有抽象方法的类必定是抽象类,是抽象类的不一定有抽象方法】 -
abstract只能修饰类和方法,不能修饰属性和其它的。
-
抽象类可以有任意成员【抽象类本质还是类】
(比如:非抽象方法、构造器、静态属性等等) -
抽象方法不能有主体,即不能实现
-
如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
-
抽象方法不能使用private、final 和 static来修饰,因为这些关键字都是和重写相违背的,
(第一种,实现抽象类的抽象方法)
abstract class BB {
abstract public int AA() ;
}
class CC extends BB{
@Override
public int AA() {
return 0;
}
}
(第二种,声明自己为抽象类)
abstract class BB {
abstract public int AA() ;
}
abstract class CC extends BB{
}