抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会大致保留抽象类的行为方式。
package chap6_5;
public abstract class SpeedMeter {
private double turnRate;
public SpeedMeter() {
// TODO Auto-generated constructor stub
}
public abstract double getRadius();
public void setTurnRate(double turnRate)
{
this.turnRate=turnRate;
}
public double getSpeed()
{
return java.lang.Math.PI*2*getRadius()*turnRate;
}
}
package chap6_5;
public class CarSpeedMeter extends SpeedMeter {
@Override
public double getRadius() {
// TODO Auto-generated method stub
return 0.28;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CarSpeedMeter csm=new CarSpeedMeter();
csm.setTurnRate(15);
System.out.println(csm.getSpeed());
}
}
抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法,留给其子类去实现。
父类中可能包含需要调用其他系列方法的方法,这些被调用方法既可以由父类实现,也可以由其子类实现。