搜索文档
定义
抽象方法
使用 abstract 修饰的方法,没有方法体,只有声明。定义的是一种“规范〞,就是告诉子类必须要给抽象方法提供具体的实现。
抽象类
包含抽象方法的类就是抽象类。通过 abstract 方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。
重点
- 有抽象方法的类只能定义为抽象类,否则会报错。
- 抽象类不能实例化,即不能 new 一个抽象类的对象。
- 抽象类可以包含属性、抽象方法、普通方法、构造方法。构造方法不能用用来 new 实例,同普通方法只能被子类实例调用。
- 抽象类只能用来被继承。
- 抽象方法必须被子类实现。
- 抽象类的意义在于为子类提供统一的、规范的模板,子类必须实现抽象类中的所有抽象方法。
代码实现
需求
- 定义一个抽象类,包含吃食物和做运动两个抽象方法。
- 定义一个球员类继承抽象类,实现吃食物和做运动两种方法。
代码
java
public abstract class People {
abstract public void eat(String food);
abstract public void run(int h);
public static void main(String[] args) {
Star star = new Star("Messi");
star.eat("饺子");
star.run(2);
}
}
class Star extends People {
String name;
public Star(String name) {
this.name = name;
}
@Override
public void eat(String food) {
System.out.printf("%s今天吃%s\n",this.name,food);
}
@Override
public void run(int h) {
System.out.printf("每天运动 %d 小时\n",h);
}
}
