{"id":10020860,"date":"2025-06-26T22:08:22","date_gmt":"2025-06-26T14:08:22","guid":{"rendered":"https:\/\/itmax.cn\/?p=10020860"},"modified":"2025-06-26T22:08:22","modified_gmt":"2025-06-26T14:08:22","slug":"java%e4%b8%ad%e6%8a%bd%e8%b1%a1%e7%b1%bb%e5%92%8c%e6%8e%a5%e5%8f%a3%e6%9c%89%e4%bd%95%e5%8c%ba%e5%88%ab%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/itmax.cn\/?p=10020860","title":{"rendered":"Java\u4e2d\u62bd\u8c61\u7c7b\u548c\u63a5\u53e3\u6709\u4f55\u533a\u522b\uff1f"},"content":{"rendered":"<p>\u4ee5\u4e0b\u662fJava\u4e2d\u62bd\u8c61\u7c7b\u4e0e\u63a5\u53e3\u7684\u6838\u5fc3\u533a\u522b\u8be6\u89e3\uff0c\u7ed3\u5408\u6700\u65b0\u89c4\u8303\uff08Java 25\uff09\u6574\u7406\uff1a<\/p>\n<p>\ud83d\udccc \u4e00\u3001\u672c\u8d28\u533a\u522b<br \/>\u200c\u7ef4\u5ea6\u200c    \u200c\u62bd\u8c61\u7c7b\u200c    \u200c\u63a5\u53e3\u200c<br \/>\u200c\u8bbe\u8ba1\u76ee\u7684\u200c    \u63d0\u4f9b\u57fa\u7840\u5b9e\u73b0\uff08\u4ee3\u7801\u590d\u7528\uff09    \u5b9a\u4e49\u884c\u4e3a\u5951\u7ea6\uff08\u591a\u6001\u6269\u5c55\uff09<br \/>\u200c\u5173\u7cfb\u7c7b\u578b\u200c    &#8220;is-a&#8221;\u5173\u7cfb\uff08\u5b50\u7c7b\u662f\u7236\u7c7b\u7684\u4e00\u79cd\uff09    &#8220;has-a\/can-do&#8221;\u5173\u7cfb\uff08\u5b9e\u73b0\u7c7b\u5177\u5907\u67d0\u79cd\u80fd\u529b\uff09<br \/>\u200c\u5b9e\u4f8b\u5316\u200c    \u4e0d\u80fd\u76f4\u63a5new    \u4e0d\u80fd\u76f4\u63a5new<br \/>\u2699\ufe0f \u4e8c\u3001\u8bed\u6cd5\u7279\u6027\u5bf9\u6bd4<br \/>\u200c\u7279\u6027\u200c    \u200c\u62bd\u8c61\u7c7b\u200c    \u200c\u63a5\u53e3\u200c\uff08JDK 8+\uff09<br \/>\u200c\u5b9a\u4e49\u5173\u952e\u5b57\u200c    abstract class    interface<br \/>\u200c\u6210\u5458\u53d8\u91cf\u200c    \u65e0\u9650\u5236\uff08\u666e\u901a\/\u9759\u6001\/\u5e38\u91cf\u5747\u53ef\uff09    \u9ed8\u8ba4\u4e3apublic static final\u5e38\u91cf<br \/>\u200c\u6784\u9020\u65b9\u6cd5\u200c    \u53ef\u5b9a\u4e49\uff08\u7528\u4e8e\u5b50\u7c7b\u521d\u59cb\u5316\uff09    \u200c\u4e0d\u53ef\u6709\u200c<br \/>\u200c\u65b9\u6cd5\u5b9e\u73b0\u200c    \u53ef\u5305\u542b\u5177\u4f53\u65b9\u6cd5    \u9ed8\u8ba4\u65b9\u6cd5\uff08default\uff09\u548c\u9759\u6001\u65b9\u6cd5<br \/>\u200c\u65b9\u6cd5\u7c7b\u578b\u200c    \u62bd\u8c61\/\u5177\u4f53\/\u9759\u6001\u65b9\u6cd5    \u62bd\u8c61\u65b9\u6cd5 + \u9ed8\u8ba4\u65b9\u6cd5 + \u9759\u6001\u65b9\u6cd5 + \u79c1\u6709\u65b9\u6cd5\uff08JDK9+\uff09<br \/>\u200c\u591a\u7ee7\u627f\u200c    \u5355\u7ee7\u627f\uff08extends\u4e00\u4e2a\u7c7b\uff09    \u591a\u5b9e\u73b0\uff08implements\u591a\u4e2a\u63a5\u53e3\uff09<br \/>\ud83d\udca1 \u4e09\u3001\u4ee3\u7801\u793a\u4f8b\u89e3\u6790<\/p>\n<ol>\n<li>\n<p>\u200c\u62bd\u8c61\u7c7b\u793a\u4f8b\u200c<br \/>java<br \/>Copy Code<br \/>abstract class Animal {<br \/> protected String name;  \/\/ \u666e\u901a\u6210\u5458\u53d8\u91cf<\/p>\n<p>public Animal(String name) {  \/\/ \u6784\u9020\u65b9\u6cd5<\/p>\n<pre><code> this.name = name;<\/code><\/pre>\n<p>}<\/p>\n<p>abstract void makeSound();  \/\/ \u62bd\u8c61\u65b9\u6cd5<\/p>\n<p>public void sleep() {        \/\/ \u5177\u4f53\u65b9\u6cd5<\/p>\n<pre><code> System.out.println(name + &quot;\u6b63\u5728\u7761\u89c9&quot;);<\/code><\/pre>\n<p>}<br \/>}<\/p>\n<\/li>\n<\/ol>\n<p>class Dog extends Animal {<\/p>\n<pre><code>public Dog(String name) { super(name); }\n\n@Override\nvoid makeSound() {\n    System.out.println(name + &quot;: \u6c6a\u6c6a!&quot;);\n}<\/code><\/pre>\n<p>}<\/p>\n<ol start=\"2\">\n<li>\n<p>\u200c\u63a5\u53e3\u793a\u4f8b\uff08\u542b\u73b0\u4ee3\u7279\u6027\uff09\u200c<br \/>java<br \/>Copy Code<br \/>interface Swimmable {<br \/> int MAX_DEPTH = 100;  \/\/ \u81ea\u52a8\u4e3a public static final<\/p>\n<p>void swim();  \/\/ \u62bd\u8c61\u65b9\u6cd5<\/p>\n<p>default void floatOnWater() {  \/\/ \u9ed8\u8ba4\u65b9\u6cd5\uff08JDK8+\uff09<\/p>\n<pre><code> System.out.println(&quot;\u6f02\u6d6e\u4e2d...&quot;);<\/code><\/pre>\n<p>}<\/p>\n<p>static boolean isAquatic() {   \/\/ \u9759\u6001\u65b9\u6cd5\uff08JDK8+\uff09<\/p>\n<pre><code> return true;<\/code><\/pre>\n<p>}<\/p>\n<p>private void log(String msg) { \/\/ \u79c1\u6709\u65b9\u6cd5\uff08JDK9+\uff09<\/p>\n<pre><code> System.out.println(&quot;[LOG] &quot; + msg);<\/code><\/pre>\n<p>}<br \/>}<\/p>\n<\/li>\n<\/ol>\n<p>class Duck implements Swimmable {<\/p>\n<pre><code>@Override\npublic void swim() {\n    System.out.println(&quot;\u9e2d\u5b50\u5212\u6c34\u4e2d&quot;);\n}<\/code><\/pre>\n<p>}<br \/>\ud83e\udde9 \u56db\u3001\u5e94\u7528\u573a\u666f\u9009\u62e9<br \/>\u200c\u573a\u666f\u200c    \u200c\u63a8\u8350\u9009\u62e9\u200c    \u200c\u539f\u56e0\u200c<br \/>\u9700\u8981\u5171\u4eab\u57fa\u7840\u4ee3\u7801    \u2705 \u200c\u62bd\u8c61\u7c7b\u200c    \u53ef\u5c01\u88c5\u516c\u5171\u65b9\u6cd5\u5b9e\u73b0\uff08\u5982\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\uff09<br \/>\u5b9a\u4e49\u8de8\u7ee7\u627f\u4f53\u7cfb\u7684\u80fd\u529b    \u2705 \u200c\u63a5\u53e3\u200c    \u591a\u4e2a\u65e0\u5173\u7c7b\u53ef\u5b9e\u73b0\u76f8\u540c\u80fd\u529b\uff08\u5982Serializable\uff09<br \/>\u9700\u8981\u7248\u672c\u517c\u5bb9\u6027\u6269\u5c55    \u2705 \u200c\u63a5\u53e3\u200c    \u901a\u8fc7default\u65b9\u6cd5\u6dfb\u52a0\u65b0\u529f\u80fd\u4e0d\u5f71\u54cd\u5df2\u6709\u5b9e\u73b0\u7c7b<br \/>\u8bbf\u95ee\u975efinal\u6210\u5458\u53d8\u91cf    \u2705 \u200c\u62bd\u8c61\u7c7b\u200c    \u63a5\u53e3\u53ea\u652f\u6301\u5e38\u91cf<br \/>\u9700\u8981\u6784\u9020\u65b9\u6cd5\u521d\u59cb\u5316\u72b6\u6001    \u2705 \u200c\u62bd\u8c61\u7c7b\u200c    \u63a5\u53e3\u65e0\u6784\u9020\u65b9\u6cd5<br \/>\ud83d\udd27 \u4e94\u3001\u6700\u65b0\u6f14\u8fdb\u8d8b\u52bf\uff08Java 17+\uff09<br \/>\u200c\u63a5\u53e3\u5f3a\u5316\u200c<\/p>\n<p>\u200c\u5bc6\u5c01\u63a5\u53e3\u200c\uff08Sealed Interface\uff09\uff1a\u9650\u5b9a\u5b9e\u73b0\u7c7b\u8303\u56f4\uff08\u4e0epermits\u5173\u952e\u5b57\u914d\u5408\uff09<br \/>java<br \/>Copy Code<br \/>public sealed interface Payment permits CreditCard, Alipay {&#8230;}<br \/>\u200c\u8bb0\u5f55\u7c7b\u652f\u6301\u200c<\/p>\n<p>\u63a5\u53e3\u53ef\u88ab\u8bb0\u5f55\u7c7b\uff08Record Class\uff09\u5b9e\u73b0\uff0c\u7b80\u5316DTO\u8bbe\u8ba1<br \/>java<br \/>Copy Code<br \/>public record User(String name, int age) implements Serializable {}<br \/>\u200c\u6a21\u5f0f\u5339\u914d\u200c<\/p>\n<p>instanceof\u81ea\u52a8\u7c7b\u578b\u8f6c\u6362\u7b80\u5316\u63a5\u53e3\/\u62bd\u8c61\u7c7b\u5904\u7406<br \/>java<br \/>Copy Code<br \/>if (obj instanceof Swimmable s) {<\/p>\n<pre><code>s.swim();  \/\/ \u76f4\u63a5\u4f7f\u7528s<\/code><\/pre>\n<p>}<br \/>\ud83d\udc8e \u603b\u7ed3\u51b3\u7b56\u6811<br \/>mermaid<br \/>Copy Code<br \/>graph TD<\/p>\n<pre><code>A[\u9700\u8981\u5b9a\u4e49\u884c\u4e3a\u5951\u7ea6?] --&gt; |\u662f| B[\u9700\u8981\u9ed8\u8ba4\u5b9e\u73b0?]\nA --&gt; |\u5426| C[\u4f7f\u7528\u62bd\u8c61\u7c7b]\nB --&gt; |\u662f| D[\u63a5\u53e3+default\u65b9\u6cd5]\nB --&gt; |\u5426| E[\u7eaf\u63a5\u53e3]\nC[\u62bd\u8c61\u7c7b\u9002\u7528\u573a\u666f] --&gt; F[\u5171\u4eab\u57fa\u7840\u4ee3\u7801\/\u72b6\u6001\u521d\u59cb\u5316]\nD --&gt; G[\u63a5\u53e3\u6269\u5c55\u6027\u5f3a]\nE --&gt; H[\u5f3a\u5236\u5b9e\u73b0\u7c7b\u5b9a\u4e49\u903b\u8f91]<\/code><\/pre>\n<p>\u200c\u9ec4\u91d1\u6cd5\u5219\u200c\uff1a<\/p>\n<p>\u200c\u62bd\u8c61\u7c7b\u200c\uff1a\u7528\u4e8e\u7d27\u5bc6\u76f8\u5173\u7684\u7c7b\u65cf\uff08\u5982Animal\u2192Cat\/Dog\uff09<br \/>\u200c\u63a5\u53e3\u200c\uff1a\u5b9a\u4e49\u8de8\u4f53\u7cfb\u80fd\u529b\uff08\u5982Serializable\/Runnable\uff09<br \/>\u73b0\u4ee3\u5f00\u53d1\u4f18\u5148\u7528\u200c\u63a5\u53e3+\u9ed8\u8ba4\u65b9\u6cd5\u200c\u5b9e\u73b0\u4ee3\u7801\u590d\u7528\uff0c\u4fdd\u7559\u62bd\u8c61\u7c7b\u7528\u4e8e\u6df1\u5ea6\u7ee7\u627f\u5173\u7cfb<\/p>\n<p><a href=\"https:\/\/segmentfault.com\/a\/1190000046806347\">https:\/\/segmentfault.com\/a\/1190000046806347<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u662fJava\u4e2d\u62bd\u8c61\u7c7b\u4e0e\u63a5\u53e3\u7684\u6838\u5fc3\u533a\u522b\u8be6\u89e3\uff0c\u7ed3\u5408\u6700\u65b0\u89c4\u8303\uff08Java 25\uff09\u6574\u7406\uff1a \ud83d\udccc \u4e00\u3001\u672c\u8d28\u533a\u522b\u200c\u7ef4\u5ea6\u200c \u200c [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-10020860","post","type-post","status-publish","format-standard","hentry","category-share"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10020860"}],"version-history":[{"count":0,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020860\/revisions"}],"wp:attachment":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10020860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10020860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10020860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}