注意 抽象类不可以直接实例化,只可以用来继承; 抽象类的派生子类应该提供对其所有抽象方法的具体实现; 可以这么认为,抽象方法实际上就是由抽象基类强制要求其派生子类必须实现的方法原型; 如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化; 抽象类中也可以包含有非抽象的方法; 构造方法和静态方法不可以修饰为abstract。
使用关键字abstract声明抽象,一般语法: 抽象类: abstract class 类名{} 抽象方法: [访问权限] abstract 返回值类型 方法名称(参数列表); 如:
package abstract; abstract class Mapping{ // 基本来 ,抽象类 public abstract void draw(); //绘图方法,抽象方法 } package abstract; public class Circular extends Mapping{ //圆形类继承于基本类 public void draw(){ // 实现抽象父类的抽象绘图方法 System.out.println("绘制了一个圆形。"); } } package abstract; public class Square extends Mapping{ //正方形类继承于基本类 public void draw(){ // 实现抽象父类的抽象绘图方法 System.out.println("绘制了一个正方形。"); } } package abstract; public class Abstract{ //测试类 public static void main(String[] args) { Shapes obj; obj = new Circle(); //父类的引用指向子类的实例 obj.draw(); // 调用绘图方法 obj = new Square(); obj.draw(); } }