抽象类
抽象类由abstract
关键词修饰。
abstract public class A{
private int num;
abstract public void test();//public abstract void test();
}
- 抽象类不能够被实例化;
- 当类中有抽象方法时,则该类一定要声明为抽象类,但是不包含抽象方法也可以声明为抽象类,但是意义不大。
- 抽象类需要被继承,不然没有意义,当继承后,可以将派生类也声明为抽象类,但是不建议。通常在派生类中将超类中的抽象方法重写。
抽象方法
抽象方法由abstract
修饰的方法,且在类中只有声明,没有实现。
abstract class A{
abstract void test();
}
tips
- 继承了抽象类的派生类需要实现抽象类中的所有抽象方法。
- 通常将共同行为但是实现方式不同的声明为抽象方法。
- 抽象类是为了实现代码的复用
- 当先上造型时,如果超类需要调用的方法大体相同,则可以使用超类去调用方法实现。