什么是抽象类:
- 抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。
- 抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型。
- 抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。
public abstract class Shapes{
public abstract void draw();
public class Circle extends Shapes {
public void draw() {
System.out.println("绘制了一个圆形。");
}
}
public class Square extends Shapes {
public void draw() {
System.out.println("绘制了一个正方形。");
}
}
public class Test {
public static void main(String[] args) {
Shapes sh = new Circle();//不能直接实例化
sh.draw();
sh = new Square();
sh.draw();
}
}
}
所以,我们可以得出:
抽象类不可以直接实例化,只可以用来继承;
抽象类的派生子类应该提供对其所有抽象方法的具体实现;
抽象方法实际上就是由抽象基类强制要求其派生子类必须实现的方法原型;
如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化;
抽象类中也可以包含有非抽象的方法;
构造方法和静态方法不可以修饰为abstract。