JAVA抽象类
一.概述
1.关键字:abstract 。
2.定义:当事物功能描述不清,只能表示有这个功能时,就应该使用抽象修饰该功能,这个功能就是抽象的功能。
二.代码的实现
1.格式:如何写一个抽象类
public abstract class Animal {
public abstract void eat();
public abstract void sleep();
}
2.格式:子类继承抽象类必须添加父类的抽象方法(否则系统报错);
public class Dog extends Animal {
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void sleep() {
// TODO Auto-generated method stub
}
}
三.特点
1.抽象类不能实例化。(表示模糊不清的事物)
2.子类继承抽象类,必须实现父类所有的抽象函数。抽象类必须由子类去继承,继承的子类必须实现父类的所有抽象方法。
3,抽象函数必须放在抽象类中,因为类中有抽象函数,表示模糊不清的功能,所以整个类描述的事物也是描述不清的,所以需要将类也定义为抽象的。
四.解疑解答
1.抽象类一定是父类吗?
答:是,因为抽象类就是通过不同的子类向上抽取共性信息得到的,抽象类必须由子类去继承和重写抽象函数。
2.抽象类中有构造函数吗?
答:必须有,因为抽象类需要由子类去继承,子类实例化的时候要调用父类的构造函数,抽象类的构造函数是初始化本类的成员变量。
3.抽象函数中只能定义抽象函数吗?
答:不只是,除了定义抽象函数,还可以定义所有一般类的成员。
4.抽象函数中能使用哪些关键字?
答:因为抽象的函数只有被继承的子类重写了才可以使用,所以不能和private以及final关键字一起。
static 因为静态的函数可以直接被类名调用,所以也不能使用static修饰抽象函数。