1 抽象方法
定义:没有方法体的方法,使用abstract关键词修饰
格式:
修饰符 abstract 返回值类型 方法名(参数列表);
举例:
public abstract void run();
2 抽象类
定义:包含抽象方法的类
格式:
abstract class 类名 {
}
代码举例:
public abstract class Animal {
public abstract void run();
}
3 抽象类的使用
如果继承抽象类的子类想要创建对象,必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。
public abstract class Animal {
public abstract void run();
}
public class Cat extends Animal {
public void run() {
System.out.println("小猫在墙头走");
}
}
public class CatTest {
public static void main(String[] args) {
//创建子类对象
Cat c = new Cat();
//调用run方法
c.run();
}
}
小猫在墙头走
4 注意事项
- 抽象类不能创建对象,如果创建,编译无法通过而报错,只能创建其非抽象子类的对象。
- 如果要使用抽象类的子类创建对象,子类必须重写抽象父类中所有的抽象方法,否则编译无法通过。除非该子类也是抽象类。
- 抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类。
- 抽象类有构造方法,是供子类创建对象时,初始化父类成员使用的。