1.抽象函数的语法特征
2.抽象类的语法特征
3.抽象类的作用
class Person{
String name;
int age;
void introduce(){
System.out.println("我的名字是"+name);
};
abstract void eat();
}
结果是:
报错的原因是 Person 必须被申明为抽象类。
抽象类天生就是当爹的,就是用来继承的,它自己不能生成对象 ,但是它的子类可以生成对象。
class Chinese extends Person{
}
让Chinese继承Person,结果是:
所以编译通过:方法1.Chinese 也要被申明为抽象类,即子类 也要被申明为抽象类
2.子类复写 抽象父类中的抽象方法,如:
class Chinese extends Person{
void eat(){
System.out.println("吃饭");
}
}
class Test{
public static void main (String args[]){
Person p = new Chinese();
p.eat();
}
}
结果:
Person的构造函数
Chinese的构造函数
吃饭
抽象类不能生成对象,但是却可以拥有构造函数,子类可以通过super调用
class Chinese extends Person{
String address;
Chinese(){
super();//不写,系统会自动加
System.out.println("Chinese的构造函数");
}
Chinese(String name,int age,String address){
super(name,age);
this.address = address;
System.out.println(address);
}
void eat(){
System.out.println("吃饭");
}
}
结果:zhangsan21
hubei
吃饭