sách gpt4 ai đã đi

JAVA - Trừu tượng hóa

In lại 作者:行者123 更新时间:2023-11-29 09:59:56 28 4
mua khóa gpt4 Nike

我对 java 中的抽象有点困惑。

我查了很多页面说抽象就是数据隐藏(隐藏实现)。

我对抽象的理解是它是“部分实现”。只需在抽象类/接口(interface)中定义您需要的内容,然后扩展/实现它们并添加您自己的功能。

我不明白这是怎么隐藏数据的?实现类/接口(interface)后,您将可以访问代码,并根据需要对其进行修改。

我查了很多问题,关于这个的文章,但仍然对此感到困惑。

感谢任何帮助。谢谢。

1 Câu trả lời

也许一个示例可以更好地帮助您。假设你想实现一个 Graph 类,它可能有邻接表或邻接矩阵来表示它的节点。所以在抽象中你至少要“addNode”“addEdge”到这个图:

public abstract class Graph
{
public abstract int addNode();
public abstract void addEdge(int from, int to);
}

现在你可以扩展两个类:

public class GraphAdjList extends Graph
{
private Map<>> adjListsMap;
public int addNode()
{
//list based implementation
}
public void addEdge(int from, int to)
{
//list based implementation
}
}

public class GraphAdjMatrix extends Graph
{
private int[][] adjMatrix;
public int addNode()
{
//matrix based implementation
}
public void addEdge(int from, int to)
{
//matrix based implementation
}
}

当您从这两个类调用 addEdge 中的任何一个时,您不必担心其背后的数据结构,您只知道您获得了所需的结果,例如:

Graph g1,g2;
g1 = new GraphAdjList();
g2 = new GraphAdjMatrix();

g1.addEdge(1,2);
g2.addEdge(1,2);

通过多态性,您可以调用两个不同的函数,但得到的结果与 Graph 的客户端相同。

另一个现实生活中的例子是汽车刹车。作为汽车客户,厂家给你一个踏板让你踩,不知道后端的刹车是怎么实现的。它可以是后部的鼓式制动器或盘式制动器。您只需要踩刹车!

关于JAVA——抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131123/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com