我还想引用我阅读和无法理解的来源。
我们都知道默认情况下,所有原始数据类型(int,float等)都支持基本操作,例如加法和减法。系统提供原始数据类型的实现。对于用户定义的类型,我们需要定义操作。这些算法的实现是在我们使用它们时完成的。 这意味着,用户定义的数据类型与其操作一起定义。
为简化解决问题的过程,我们将dataStructures及其操作组合在一起,并将其称为AbstractDataType。
任何人都可以解释它的一个很好的例子,也可以解释现实世界的背景吗? 为什么你需要它们?
来源Narasimha Karumanchi着作“数据结构和算法”
答案 0 :(得分:1)
好问题!
就应用程序基础结构和设计而言,抽象数据类型非常有用,以便拥有一个干净且易于理解的类和数据模型层次结构。 正如您要求的实际示例,请使用任何使用数据库的应用程序:比如在线电子商店。 当然,原始数据类型很有用,比方说我们使用双打来存储价格,整数来存储项目和字符串的数量以显示和存储项目名称/描述,但我们如何处理购物篮/购物车?最简单和最推荐的方法是通过一个单独的类创建购物车的抽象表示,比如shoppingCart,它将包含其属性:
class shoppingCart{
int numOfItems;
double totalPrice;
List<Product> products;
etc.
}
此外,我们需要类来表示产品和类别,例如:
class Product{
double price;
string name;
etc.
}
将您创建的任何抽象数据类型视为您自己的对象,并使用自己的方法等等。
我们将使用抽象类来定义扩展它们的某些子类的一般行为,例如:abstract class Vehicle和类Car,Bike,它们可以扩展Vehicle。 结构将是:
abstract class vehicle{
public void drive();
public int getNumberOfWheels();
}
这样我们确保Car和Bike的所有实例都将实现抽象类车辆中列出的2种方法:
class car extends vehicle{
//we have to implement the 2 methods and provide an implementation for it
}
另一位开发人员希望创建一种新型车辆(比如说“飞机”),所以他现在可以看到 实施这两种方法无论如何。
我希望我能帮到你。