用例子控制Java的抽象
我们的目标是在Java理解和实现控制抽象。在直接进入控制抽象之前,让我们了解什么是抽象。
抽象:简单来说,抽象就是不向用户展示系统的基本特征而不涉及其细节。例如,向购买者描述汽车及其功能,驾驶员也学习如何使用方向盘和油门驾驶,但未向购买者展示发动机的内部机制。要阅读有关抽象的更多信息,请参阅此处。
在抽象中,有两种类型:数据抽象和控制抽象。
简而言之,数据抽象意味着创建复杂的数据类型,但只给出基本操作。
控制抽象:这是指抽象的软件部分,其中程序被简化并删除了不必要的执行细节。
以下是关于控制抽象的要点:
- 控制抽象遵循 DRY 代码的基本规则,这意味着不要重复自己,在程序中使用函数是控制抽象的最好例子。
- 控制抽象可用于构建新功能并将控制语句组合到一个单元中。
- 它是所有高级语言的基本特性,而不仅仅是Java。
- 高阶函数、闭包和 lambda 是控制抽象的几个先决条件。
- 更多地强调如何实现特定功能而不是描述每个细节。
- 构成结构化程序设计的主要单元。
一个简单的控制流算法:
- 先获取资源
- 然后,块被执行。
- 一旦控制离开块,资源就会关闭
例子:
Java
// Abstract class
abstract class Vehicle {
// Abstract method (does not have a body)
public abstract void VehicleSound();
// Regular method
public void honk() { System.out.println("honk honk"); }
}
// Subclass (inherit from Vehicle)
class Car extends Vehicle {
public void VehicleSound()
{
// The body of VehicleSound() is provided here
System.out.println("kon kon");
}
}
class Main {
public static void main(String[] args)
{
// Create a Car object
Car myCar = new Car();
myCar.VehicleSound();
myCar.honk();
}
}
输出
kon kon
honk honk
控制抽象的最大优点是它使代码更简洁,也更安全。