- 抽象类与抽象方法必须用abstract修饰(与final互斥),抽象方法不可有方法体
- 抽象类不可被实例化,不能用于创建对象
- 抽象类包括成员变量、方法(普通方法和抽象方法)、构造器、初始化块、内部类,主要用于派生子类
- 抽象类的子类要么重写父类的全部抽象方法,要么只能定义为抽象类
1 2 3 4 5 6 7 8 9
| public class abstractTest { public static void main(String[] args){
铠甲勇士2 炎龙技能类型 = new 炎龙铠甲2(); 铠甲勇士2 风鹰技能类型 = new 风影铠甲2(); 炎龙技能类型.铠甲技能2(); 风鹰技能类型.铠甲技能2(); } }
|
- abstract抽象类最主要的功能:派生子类,abstract与final互斥
- 相对于普通类,abstract类多了abstract方法,抽象类不可实例化,即不能被分配内存、不能创建对象
- static修饰的方法属于类本身,必须被分配内存,static和abstract不可同时修饰一个方法
1 2 3 4 5 6 7 8 9 10
| abstract class 铠甲勇士2{
public abstract void 铠甲技能2();
public void 非抽象(){
} }
|
抽象类的子类,要么重写父类的全部抽象方法,要么也是抽象类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class 炎龙铠甲2 extends 铠甲勇士2 { @Override public void 铠甲技能2() { System.out.println("封魔斩"); } }
class 风影铠甲2 extends 铠甲勇士2 { @Override public void 铠甲技能2() { System.out.println("穿风刺"); } }
abstract class 帝皇铠甲 extends 铠甲勇士2{
}
|