一、抽象概述
1、由来
父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。
我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。
2、定义
-
- 抽象方法:没有方法体的方法。
- 抽象类:包含抽象方法的类。
二、abstract 使用格式
1、抽象方法
使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。
定义格式:
修饰符 abstract 返回值类型 方法名 (参数列表);
2、抽象类
如果一个类包含抽象方法,那么该类必须是抽象类。
定义格式:
abstract class 类名字 {
// 方法体
}
3、抽象的使用
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。
最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
Demo:
1 public class Cat extends Animal {
2 public void run (){
3 System.out.println("小猫在墙头走~~~");
4 }
5 }
6 public class CatTest {
7 public static void main(String[] args) {
8 // 创建子类对象
9 Cat c = new Cat();
10 // 调用run方法
11 c.run();
12 }
13 }
14 输出结果:
15 小猫在墙头走~~~
注意:此时的方法重写,是子类对父类抽象方法的完成实现,我们将这种方法重写的操作,也叫做实现方法。