抽象函数的语法特征
定义
只有函数的定义,没有函数体的函数被称为抽象函数:
abstract void fun();
例如:
class Person(){//编译报错,Person不是抽象的
String name;
int age;
void introduce(){
System.out.println("...");
}
abstract void eat();
}
抽象类的语法特征
定义
使用abstract定义的类被称之为抽象类;
- 抽象类不能够生成对象;
- 如果一个类当中包含有抽象函数,那么这个类必须被声明为抽象类;
如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类;
abstract class Person(){//编译报错,Person不是抽象的 String name; int age; Person(){ System.out.println("Person()"); } void introduce(){ System.out.println("..."); } abstract void eat(); } class Chinese extends Person{ Chinese(){ System.out.println("Chinese()"); } //覆写 void eat(){ System.out.println("用筷子吃饭"); } } class Test{ public static void main(String[] args){ Person p = new Chinese(); p.eat(); } }
抽象类的作用
- 用作基类
- 抽象类不能生成对象,但是可以有构造函数!!因为在子类中可以通过super关键字调用父类的构造函数