抽象类(二):

抽象类的作用:模板

1、从语义的角度看,抽象类是从多个具体类中抽象出来的父类,具有更高层次的抽象

2、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了其子类设计的随意性

3、抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类从整体上会大致保留抽象类的行为方式

下面代码展示的是另一种抽象类的模板使用样式:

 

abstract class SpeedMeter{
	//-转速
	private double trunRate;

	public SpeedMeter(){
		
	}

	//-定义一个获取半径的 抽象方法
	public abstract double getRadius();

	public void setTrunRate(double trunRate){
		this.trunRate=trunRate;
	}

	//-定义一个获取速度的方法,调用 还未实现的 获取半径的抽象方法
	public double getSpeed(){
		return Math.PI*2*getRadius()*trunRate;
	}
}

public class CarSpeedMeter extends SpeedMeter{
	
	//-实现父类的抽象方法 返回半径
	public double getRadius(){
		return 0.25;
	}
	
	public static void main(String[] args){
		CarSpeedMeter car=new CarSpeedMeter();
		car.setTrunRate(25);
		System.out.println(car.getSpeed());
	}
}

 运行结果:

如上代码中:SpeedMeter 类里提供了获取速度表的通用方法,但是具体实现细节则推迟到了其子类 CarSpeedMeter 中来实现,这也是一种典型的模板模式

总结:

模板模式在面向对象的软件中很常用,其原理简单,实现也简单,其一些简单规则如下:

1、抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法留给子类去实现

2、父类中可能包含需要调用其他系列方法的方法,这些被调用的方法既可以被父类实现,也可以通过抽象方法的方式由子类来实现

转载于:https://www.cnblogs.com/baby-zhude/p/8137298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值