抽象方法:
- 由abstract修饰
- 只有方法的定义,没有方法的实现(大括号都没有)
抽象类:
- 由abstract修饰
- 包含抽象方法的类必须是抽象类
不包含抽象方法的类也可以声明为抽象类------我乐意 - 抽象类不能被实例化
- 抽象类是需要被继承的,子类
- 重写所有抽象方法—常用
- 也声明为抽象类----不常用
- 抽象类的意义:
- 包含公共的属性和行为,被子类所共享—代码复用
- 为所有子类提供一种公共的类型—向上造型
- 含抽象方法,为所有子类提供一个统一的入口
- 子类有不同的实现
eg:
abstract class Shape{//抽象类
protected double c;//周长
public abstract double area();//抽象方法
}
class Square extends Shape{
public Square(double c) {
this.c = c;
}
public double area() {//重写抽象方法
return 0.0625*c*c;//圆形的系数0.0796
}
}