{"id":475778,"date":"2023-08-09T07:23:51","date_gmt":"2023-08-09T07:23:51","guid":{"rendered":""},"modified":"2023-09-05T11:11:12","modified_gmt":"2023-09-05T11:11:12","slug":"abstract-method","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/cn\/wiki\/abstract-method\/","title":{"rendered":"\u62bd\u8c61\u65b9\u6cd5"},"content":{"rendered":"<p>\u62bd\u8c61\u65b9\u6cd5\u662f\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u8bed\u8a00\uff08\u4f8b\u5982 Java\u3001Python \u548c C#\uff09\u4e2d\u72ec\u6709\u7684\u529f\u80fd\u3002\u8fd9\u4e9b\u65b9\u6cd5\u5728\u62bd\u8c61\u7c7b\u4e2d\u58f0\u660e\uff0c\u4f46\u4e0d\u5305\u542b\u4efb\u4f55\u5b9e\u73b0\u7ec6\u8282\u3002\u76ee\u7684\u662f\u4e3a\u5176\u4ed6\u7c7b\u63d0\u4f9b\u5b9a\u4e49\u65b9\u6cd5\u884c\u4e3a\u7684\u84dd\u56fe\u3002<\/p>\n<h2>\u5386\u53f2\u8d77\u6e90\u548c\u9996\u6b21\u63d0\u53ca<\/h2>\n<p>\u62bd\u8c61\u65b9\u6cd5\u548c\u62bd\u8c61\u7c7b\u4e00\u822c\u90fd\u6e90\u4e8e\u62bd\u8c61\u6570\u636e\u7c7b\u578b\u7684\u6982\u5ff5\uff0c\u8fd9\u662f\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u7684\u6838\u5fc3\u5143\u7d20\u3002\u8be5\u6982\u5ff5\u6700\u65e9\u662f\u5728 20 \u4e16\u7eaa 60 \u5e74\u4ee3\u7684 Simula \u7f16\u7a0b\u8bed\u8a00\u4e2d\u5f15\u5165\u7684\u3002\u7136\u800c\uff0c\u62bd\u8c61\u65b9\u6cd5\u7684\u5168\u9762\u5e94\u7528\u5728\u968f\u540e\u7684\u9ad8\u7ea7\u8bed\u8a00\u4e2d\u53d8\u5f97\u663e\u800c\u6613\u89c1\uff0c\u4f8b\u5982 C++\u3001Java\u3001C# \u548c Python\uff0c\u8fd9\u4e9b\u8bed\u8a00\u5b8c\u5168\u652f\u6301\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u539f\u5219\u3002<\/p>\n<h2>\u6df1\u5165\u4e86\u89e3\u62bd\u8c61\u65b9\u6cd5<\/h2>\n<p>\u62bd\u8c61\u65b9\u6cd5\u5728\u62bd\u8c61\u7c7b\u4e2d\u5b9a\u4e49\uff0c\u4e0d\u5305\u542b\u4e3b\u4f53\uff1b\u6362\u53e5\u8bdd\u8bf4\uff0c\u5b83\u4eec\u6ca1\u6709\u4efb\u4f55\u5b9e\u73b0\u4ee3\u7801\u3002\u5b83\u4eec\u901a\u5e38\u7528\u4f5c\u5fc5\u987b\u5728\u4efb\u4f55\u975e\u62bd\u8c61\u5b50\u7c7b\u4e2d\u521b\u5efa\u7684\u65b9\u6cd5\u7684\u5360\u4f4d\u7b26\u3002\u8fd9\u4e3a\u672a\u6765\u7684\u7279\u5b9a\u7c7b\u63d0\u4f9b\u4e86\u4e00\u79cd\u7ed3\u6784\uff0c\u540c\u65f6\u4fc3\u8fdb\u4e86\u591a\u6001\u6027\u3002<\/p>\n<p>\u62bd\u8c61\u65b9\u6cd5\u53ef\u4ee5\u770b\u4f5c\u662f\u4efb\u4f55\u5177\u4f53\uff08\u5373\u975e\u62bd\u8c61\uff09\u5b50\u7c7b\u7684\u5951\u7ea6\u4e49\u52a1\u3002\u5b83\u8981\u6c42\u4efb\u4f55\u5177\u4f53\u5b50\u7c7b\u5fc5\u987b\u63d0\u4f9b\u8fd9\u4e9b\u65b9\u6cd5\u7684\u5b9e\u73b0\u7ec6\u8282\u3002<\/p>\n<h2>\u5185\u90e8\u7ed3\u6784\u53ca\u5de5\u4f5c\u673a\u5236<\/h2>\n<p>\u62bd\u8c61\u65b9\u6cd5\u7684\u5185\u90e8\u7ed3\u6784\u6d89\u53ca\u5728\u62bd\u8c61\u7c7b\u4e2d\u58f0\u660e\u5b83\uff0c\u800c\u4e0d\u9644\u5e26\u4efb\u4f55\u5b9e\u73b0\u4ee3\u7801\u3002\u5b9a\u4e49\u62bd\u8c61\u65b9\u6cd5\u7684\u8bed\u6cd5\u5728\u4e0d\u540c\u7684\u7f16\u7a0b\u8bed\u8a00\u4e2d\u6709\u6240\u4e0d\u540c\u3002\u4f8b\u5982\uff0c\u5728 Java \u4e2d\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528 <code data-no-translation=\"\">abstract<\/code> \u5173\u952e\u8bcd\uff1a<\/p>\n<pre><div class=\"bg-black rounded-md mb-4\"><div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\"><span>\u722a\u54c7<\/span><button class=\"flex ml-auto gap-2\"><svg stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" viewbox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"h-4 w-4\" height=\"1em\" width=\"1em\" ><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"><\/path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"><\/rect><\/svg>\u590d\u5236\u4ee3\u7801<\/button><\/div><div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-java\" data-no-translation=\"\"><span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">myAbstractMethod<\/span><span class=\"hljs-params\">()<\/span>;\n<\/code><\/div><\/div><\/pre>\n<p>\u5f53\u5177\u4f53\u7c7b\u6269\u5c55\u62bd\u8c61\u7c7b\u65f6\uff0c\u5b83\u5fc5\u987b\u4e3a\u6240\u6709\u62bd\u8c61\u65b9\u6cd5\u63d0\u4f9b\u5b9e\u73b0\u3002\u4e0d\u8fd9\u6837\u505a\u5c06\u5bfc\u81f4\u7f16\u8bd1\u65f6\u9519\u8bef\u3002<\/p>\n<pre><div class=\"bg-black rounded-md mb-4\"><div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\"><span>\u722a\u54c7<\/span><button class=\"flex ml-auto gap-2\"><svg stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" viewbox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"h-4 w-4\" height=\"1em\" width=\"1em\" ><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"><\/path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"><\/rect><\/svg>\u590d\u5236\u4ee3\u7801<\/button><\/div><div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-java\" data-no-translation=\"\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ConcreteClass<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">AbstractClass<\/span> {\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">myAbstractMethod<\/span><span class=\"hljs-params\">()<\/span> {\n        <span class=\"hljs-comment\">\/\/ Implementation code goes here<\/span>\n    }\n}\n<\/code><\/div><\/div><\/pre>\n<h2>\u62bd\u8c61\u65b9\u6cd5\u7684\u4e3b\u8981\u7279\u5f81<\/h2>\n<ol>\n<li><strong>\u62bd\u8c61\u7c7b\u4e2d\u7684\u5b9a\u4e49\uff1a<\/strong> \u62bd\u8c61\u65b9\u6cd5\u53ea\u80fd\u5728\u62bd\u8c61\u7c7b\u4e2d\u5b9a\u4e49\u3002<\/li>\n<li><strong>\u672a\u5b9e\u65bd\uff1a<\/strong> \u5b83\u4eec\u6ca1\u6709\u4e3b\u4f53\uff0c\u5373\u6ca1\u6709\u5b9e\u73b0\u4ee3\u7801\u3002<\/li>\n<li><strong>\u5f3a\u5236\u5b9e\u65bd\uff1a<\/strong> \u4efb\u4f55\u6269\u5c55\u62bd\u8c61\u7c7b\u7684\u5177\u4f53\u7c7b\u90fd\u5fc5\u987b\u63d0\u4f9b\u62bd\u8c61\u65b9\u6cd5\u7684\u5b9e\u73b0\u3002<\/li>\n<li><strong>\u652f\u6301\u591a\u6001\u6027\uff1a<\/strong> \u62bd\u8c61\u65b9\u6cd5\u662f\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u4e2d\u5b9e\u73b0\u591a\u6001\u6027\u7684\u5173\u952e\u7ec4\u6210\u90e8\u5206\u3002<\/li>\n<\/ol>\n<h2>\u62bd\u8c61\u65b9\u6cd5\u7684\u7c7b\u578b<\/h2>\n<p>\u4e00\u822c\u6765\u8bf4\uff0c\u62bd\u8c61\u65b9\u6cd5\u6ca1\u6709\u660e\u786e\u7684\u201c\u7c7b\u578b\u201d\uff0c\u56e0\u4e3a\u5b83\u4eec\u7684\u4e3b\u8981\u7279\u5f81\u662f\u7f3a\u4e4f\u5b9e\u73b0\u3002\u4f46\u662f\uff0c\u62bd\u8c61\u65b9\u6cd5\u53ef\u4ee5\u6839\u636e\u5176\u53c2\u6570\u3001\u8fd4\u56de\u7c7b\u578b\u548c\u5b83\u4eec\u53ef\u4ee5\u629b\u51fa\u7684\u5f02\u5e38\u8fdb\u884c\u533a\u5206\uff0c\u5c31\u50cf\u5e38\u89c4\u65b9\u6cd5\u4e00\u6837\u3002<\/p>\n<h2>\u62bd\u8c61\u65b9\u6cd5\u7684\u4f7f\u7528\u53ca\u76f8\u5173\u95ee\u9898<\/h2>\n<p>\u5f53\u7a0b\u5e8f\u5458\u60f3\u8981\u5728\u5b50\u7c7b\u4e2d\u5f3a\u5236\u6267\u884c\u67d0\u4e9b\u884c\u4e3a\u65f6\uff0c\u4f1a\u4f7f\u7528\u62bd\u8c61\u65b9\u6cd5\u3002\u4f8b\u5982\uff0c\u5728\u6a21\u62df\u52a8\u7269\u56ed\u7684\u8f6f\u4ef6\u4e2d\uff0c\u62bd\u8c61\u7c7b <code data-no-translation=\"\">Animal<\/code> \u53ef\u80fd\u6709\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5 <code data-no-translation=\"\">makeSound()<\/code>. \u6bcf\u4e00\u4e2a\u5177\u4f53\u7684\u52a8\u7269\u7c7b\u522b\uff08\u6bd4\u5982 <code data-no-translation=\"\">Lion<\/code>, <code data-no-translation=\"\">Elephant<\/code>\u7b49\uff09\u5fc5\u987b\u5b9e\u73b0\u6b64\u65b9\u6cd5\uff0c\u786e\u4fdd\u6bcf\u79cd\u52a8\u7269\u90fd\u80fd\u53d1\u51fa\u58f0\u97f3\uff0c\u5c3d\u7ba1\u6bcf\u79cd\u52a8\u7269\u7684\u5b9e\u9645\u58f0\u97f3\u6709\u6240\u4e0d\u540c\u3002<\/p>\n<p>\u4f7f\u7528\u62bd\u8c61\u65b9\u6cd5\u65f6\u51fa\u73b0\u7684\u95ee\u9898\u901a\u5e38\u662f\u7531\u4e8e\u8bef\u89e3\u4e86\u5176\u7528\u9014\u3002\u4f8b\u5982\uff0c\u7a0b\u5e8f\u5458\u53ef\u80fd\u4f1a\u9519\u8bef\u5730\u5c1d\u8bd5\u5b9e\u4f8b\u5316\u62bd\u8c61\u7c7b\uff0c\u6216\u8005\u5ffd\u7565\u5728\u5177\u4f53\u5b50\u7c7b\u4e2d\u5b9e\u73b0\u62bd\u8c61\u65b9\u6cd5\u3002<\/p>\n<h2>\u4e0e\u7c7b\u4f3c\u6982\u5ff5\u7684\u6bd4\u8f83<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u7279\u5f81<\/th>\n<th>\u62bd\u8c61\u65b9\u6cd5<\/th>\n<th>\u63a5\u53e3\u65b9\u6cd5 (Java)<\/th>\n<th>\u7eaf\u865a\u51fd\u6570\uff08C++\uff09<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5b9a\u4e49<\/td>\n<td>\u5728\u62bd\u8c61\u7c7b\u4e2d\u5b9a\u4e49<\/td>\n<td>\u5728\u63a5\u53e3\u4e2d\u5b9a\u4e49<\/td>\n<td>\u5728\u7c7b\u4e2d\u5b9a\u4e49\u5e76\u6807\u8bb0\u4e3a <code data-no-translation=\"\">= 0<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u6267\u884c<\/td>\n<td>\u5b9a\u4e49\u5b83\u4eec\u7684\u7c7b\u4e2d\u6ca1\u6709\u5b9e\u73b0<\/td>\n<td>\u5b9a\u4e49\u5b83\u4eec\u7684\u63a5\u53e3\u4e2d\u6ca1\u6709\u5b9e\u73b0<\/td>\n<td>\u5b9a\u4e49\u5b83\u4eec\u7684\u7c7b\u4e2d\u6ca1\u6709\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>\u5b50\u7c7b\/\u5b9e\u73b0\u7c7b<\/td>\n<td>\u5fc5\u987b\u5b9e\u73b0\u62bd\u8c61\u65b9\u6cd5<\/td>\n<td>\u5fc5\u987b\u5b9e\u73b0\u63a5\u53e3\u65b9\u6cd5<\/td>\n<td>\u5fc5\u987b\u5b9e\u73b0\u7eaf\u865a\u51fd\u6570<\/td>\n<\/tr>\n<tr>\n<td>\u591a\u91cd\u7ee7\u627f<\/td>\n<td>Java \u4e0d\u652f\u6301\u7c7b\u7684\u591a\u91cd\u7ee7\u627f<\/td>\n<td>\u63a5\u53e3\u53ef\u7528\u4e8e\u6a21\u62df\u591a\u91cd\u7ee7\u627f<\/td>\n<td>C++ \u652f\u6301\u591a\u91cd\u7ee7\u627f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u672a\u6765\u524d\u666f\u548c\u6280\u672f<\/h2>\n<p>\u62bd\u8c61\u65b9\u6cd5\u5c06\u7ee7\u7eed\u6210\u4e3a\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5728\u8bbe\u8ba1\u7075\u6d3b\u4e14\u53ef\u7ef4\u62a4\u7684\u8f6f\u4ef6\u65b9\u9762\u53d1\u6325\u7740\u81f3\u5173\u91cd\u8981\u7684\u4f5c\u7528\u3002\u5b83\u4eec\u5c06\u6210\u4e3a\u672a\u6765\u6280\u672f\uff08\u5982\u4eba\u5de5\u667a\u80fd\u7f16\u7a0b\uff09\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\uff0c\u5728\u8fd9\u4e9b\u6280\u672f\u4e2d\uff0c\u5b9a\u4e49\u53ef\u5728\u4ee5\u540e\u7528\u5177\u4f53\u5b9e\u73b0\u586b\u5145\u7684\u62bd\u8c61\u884c\u4e3a\u81f3\u5173\u91cd\u8981\u3002<\/p>\n<h2>\u4ee3\u7406\u670d\u52a1\u5668\u548c\u62bd\u8c61\u65b9\u6cd5<\/h2>\n<p>\u5728\u4ee3\u7406\u670d\u52a1\u5668\u4e0a\u4e0b\u6587\u4e2d\uff0c\u62bd\u8c61\u65b9\u6cd5\u53ef\u7528\u4e8e\u5b9a\u4e49\u901a\u7528\u64cd\u4f5c\uff0c\u4f8b\u5982\u53d1\u9001\u6216\u63a5\u6536\u6570\u636e\u3002\u4f8b\u5982\uff0c <code data-no-translation=\"\">ProxyServer<\/code> \u62bd\u8c61\u7c7b\u53ef\u80fd\u6709\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5 <code data-no-translation=\"\">handleRequest()<\/code>. \u5177\u4f53\u7c7b\u5982 <code data-no-translation=\"\">HTTPProxyServer<\/code> \u548c <code data-no-translation=\"\">SocksProxyServer<\/code> \u5c06\u63d0\u4f9b\u6b64\u65b9\u6cd5\u7684\u5177\u4f53\u5b9e\u73b0\uff0c\u5141\u8bb8\u7279\u5b9a\u4e8e\u534f\u8bae\u7684\u8bf7\u6c42\u5904\u7406\u3002<\/p>\n<h2>\u76f8\u5173\u94fe\u63a5<\/h2>\n<ol>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/abstract-methods-in-java\/\" target=\"_new\" rel=\"noopener nofollow\">Java \u4e2d\u7684\u62bd\u8c61\u65b9\u6cd5 \u2013 GeeksForGeeks<\/a><\/li>\n<li><a href=\"https:\/\/realpython.com\/python-abstract-classes\/\" target=\"_new\" rel=\"noopener nofollow\">Python \u4e2d\u7684\u62bd\u8c61\u7c7b \u2013 \u771f\u6b63\u7684 Python<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/programming-guide\/classes-and-structs\/abstract-and-sealed-classes-and-class-members\" target=\"_new\" rel=\"noopener nofollow\">C# \u4e2d\u7684\u62bd\u8c61\u7c7b\u548c\u65b9\u6cd5 \u2013 Microsoft \u6587\u6863<\/a><\/li>\n<li><a href=\"https:\/\/www.infoq.com\/articles\/proxy-object-oriented-programming\/\" target=\"_new\" rel=\"noopener nofollow\">\u4ee3\u7406\u670d\u52a1\u5668\u548c\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b \u2013 InfoQ<\/a><\/li>\n<\/ol>","protected":false},"featured_media":467455,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-475778","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>Abstract Methods in Object-Oriented Programming<\/mark>","faq_items":[{"question":"What is an abstract method in object-oriented programming?","answer":"<p>An abstract method is a unique feature in object-oriented programming languages, such as Java, Python, and C#. These methods are declared in an abstract class but do not contain any implementation details. They provide a blueprint for other classes to define the methods' behavior.<\/p>"},{"question":"When and where were abstract methods first introduced?","answer":"<p>Abstract methods, and abstract classes in general, have roots in the concept of abstract data types, a core element of object-oriented programming. The idea was first introduced in the Simula programming language during the 1960s. The full application of abstract methods became evident in subsequent high-level languages such as C++, Java, C#, and Python.<\/p>"},{"question":"How do abstract methods work in programming?","answer":"<p>Abstract methods are defined within an abstract class and do not contain a body, i.e., they do not have any implementation code. They're used as placeholders for methods that must be created within any non-abstract child class. When a concrete class extends the abstract class, it must provide an implementation for all abstract methods.<\/p>"},{"question":"What are the key features of abstract methods?","answer":"<p>Abstract methods are defined in abstract classes, have no implementation, enforce certain behavior in subclasses, and support polymorphism in object-oriented programming.<\/p>"},{"question":"Are there different types of abstract methods?","answer":"<p>Generally, there are no distinct \"types\" of abstract methods as their primary feature is the lack of implementation. However, they can be differentiated based on their parameters, return type, and the exceptions they can throw.<\/p>"},{"question":"What are some potential issues with using abstract methods?","answer":"<p>Issues related to the use of abstract methods often arise from misunderstanding their purpose. For instance, trying to instantiate an abstract class or forgetting to implement an abstract method in a concrete subclass can cause problems.<\/p>"},{"question":"How do abstract methods compare to interface methods and pure virtual functions?","answer":"<p>While all these constructs allow for defining behavior without providing an implementation, their usage varies. For example, interface methods (in Java) and pure virtual functions (in C++) also lack an implementation, but they're defined in interfaces and classes, respectively. Multiple inheritance is supported with interfaces and in C++, but not with abstract classes in Java.<\/p>"},{"question":"How are abstract methods used in the context of proxy servers?","answer":"<p>Abstract methods can be used to define generic operations such as sending or receiving data. For example, in a <code>ProxyServer<\/code> abstract class, an abstract method <code>handleRequest()<\/code> might be defined. Concrete classes like <code>HTTPProxyServer<\/code> and <code>SocksProxyServer<\/code> would provide specific implementations of this method.<\/p>"},{"question":"What does the future hold for abstract methods?","answer":"<p>Abstract methods will continue to be an essential part of object-oriented programming, being integral to future technologies such as AI programming and protocol-specific handling in proxy servers. They allow defining abstract behaviors that can be filled in later with specific implementations.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/wiki\/475778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/wiki\/475778\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/media\/467455"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/cn\/wp-json\/wp\/v2\/media?parent=475778"}],"curies":[{"name":"\u53ef\u6e7f\u6027\u7c89\u5242","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}