抽象类基础知识
抽象类
- 1.概念
- 2.语法
- 3.特性
- 4.作用
- 5.运用
1.概念
如果一个类中没有包含足够的信息来描绘一个具体的对象,
这样的类就是抽象类
2.语法
一个类如果被 abstract 修饰称为抽象类,
抽象类中被 abstract 修饰的方法称为抽象方法,
抽象方法不用给出具体的实现体
抽象类也是类,内部可以包含普通方法和属性,甚至构造方法
// 抽象类:被abstract修饰的类
public abstract class Shape {// 抽象方法:被abstract修饰的方法,没有方法体abstract public void draw();abstract void calcArea();// 抽象类也是类,也可以增加普通方法和属性public double getArea(){return area;}protected double area; // 面积
}
3.特性
- 抽象类不能直接实例化对象
- 抽象方法不能是 private 的
- 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
- 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,
否则子类也是抽象类,必须要使用 abstract 修饰 - 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类
- 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量
4.作用
抽象类相当于多了一重编译器的校验
5.运用
public class Cycle extends Shape{@Overridepublic void draw() {System.out.println("画一个圆....");}
}
public class Flower extends Shape{@Overridepublic void draw() {System.out.println("画一个花....");}
}
public class Rect extends Shape{@Overridepublic void draw() {System.out.println("画一个矩形....");}
}
public abstract class Shape {public abstract void draw();
}
public class Test {public static void drawMap(Shape shape) {shape.draw();}public static void main(String[] args) {drawMap(new Cycle());drawMap(new Rect());drawMap(new Flower());}
}