<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      抽象類VS接口:核心區(qū)別與實(shí)戰(zhàn)選擇

      抽象類與接口的定義

      抽象類:用abstract修飾的類,可以包含抽象方法(無(wú)實(shí)現(xiàn))和具體方法(有實(shí)現(xiàn))。抽象類無(wú)法實(shí)例化,需由子類繼承并實(shí)現(xiàn)其抽象方法。

      接口:用interface定義,默認(rèn)方法均為public abstract(Java 8前),可包含常量(public static final)。Java 8后支持默認(rèn)方法(default)和靜態(tài)方法(static)。

      核心區(qū)別

      1. 設(shè)計(jì)目的

      • 抽象類:表示“是什么”(is-a關(guān)系),強(qiáng)調(diào)類的本質(zhì)(如Animal是Cat的父類)。
      • 接口:表示“能做什么”(can-do關(guān)系),定義行為契約(如Flyable接口表示可飛行)。

      2. 多繼承

      • 抽象類:Java單繼承,子類只能繼承一個(gè)抽象類。
      • 接口:類可實(shí)現(xiàn)多個(gè)接口(如class Bird implements Flyable, Singable)。

      3. 成員變量

      • 抽象類:可包含普通變量和常量。
      • 接口:變量默認(rèn)是public static final,必須初始化。
      1. 方法實(shí)現(xiàn)
      • 抽象類:可包含具體方法和抽象方法。
      • 接口:Java 8前所有方法均為抽象方法;Java 8后支持默認(rèn)方法和靜態(tài)方法。
      1. 構(gòu)造器
      • 抽象類:有構(gòu)造器(用于子類初始化)。
      • 接口:無(wú)構(gòu)造器。

      使用場(chǎng)景

      抽象類的適用場(chǎng)景

      • 需要定義模板方法模式(部分邏輯固定,部分由子類實(shí)現(xiàn))。
      • 多個(gè)子類有共享的公共代碼或狀態(tài)(如字段、方法)。
      • 需要控制子類的構(gòu)造過(guò)程(通過(guò)抽象類的構(gòu)造器)。
      abstract class Logger {
          protected String format; // 共享字段
       
          public void log(String message) {
              System.out.println(format + ": " + message); // 固定邏輯
          }
       
          public abstract void setFormat(); // 子類實(shí)現(xiàn)
      }
      

      接口的適用場(chǎng)景

      • 定義跨類別的行為(如Comparable、Serializable)。
      • 需要多繼承行為時(shí)(如一個(gè)類需同時(shí)支持Readable和Writable)。
      • 定義API契約(如Spring的Repository接口)。
      interface Drawable {
          void draw(); // 行為契約
      }
       
      class Circle implements Drawable {
          @Override
          public void draw() {
              System.out.println("Drawing a circle");
          }
      }
      

      版本演進(jìn)的影響

      • Java 8:接口支持默認(rèn)方法(default),便于擴(kuò)展接口而不破壞現(xiàn)有實(shí)現(xiàn)。
      • Java 9:接口支持私有方法,用于拆分默認(rèn)方法的邏輯。
      interface Vehicle {
          default void start() {
              System.out.println("Vehicle started");
          }
      }
      

      總結(jié)選擇建議

      • 優(yōu)先接口:當(dāng)行為需要跨多個(gè)不相關(guān)類時(shí)(如Serializable),或需要多繼承能力。
      • 選擇抽象類:當(dāng)需要共享代碼或狀態(tài),或定義類的基礎(chǔ)模板時(shí)。
      • 兩者并非互斥,可結(jié)合使用(如抽象類實(shí)現(xiàn)接口的部分方法)。
      posted @ 2025-08-08 14:27  三水彡彡  閱讀(541)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品一区二区三区无码视频 | 久热在线中文字幕色999舞| 亚洲欧美综合精品成| 国产精品毛片在线看不卡| 国产又黄又爽又刺激的免费网址 | 人妻少妇精品系列一区二区 | 国产av无码专区亚洲av软件| 五月综合激情婷婷六月| 高清一区二区三区不卡视频| 亚洲产在线精品亚洲第一站一 | 色一情一乱一伦麻豆| 国产欧美日韩免费看AⅤ视频| 高清自拍亚洲精品二区| 国产精品三级黄色小视频| 又爽又黄又无遮掩的免费视频| 麻豆国产AV剧情偷闻女邻居内裤| 亚洲国产精品线观看不卡| 亚洲精品无码你懂的网站| 中文字幕国产精品二区| 成人欧美日韩一区二区三区| 超碰自拍成人在线观看| 最新亚洲人成网站在线影院| 在线观看视频一区二区三区| 国产精品福利自产拍久久| 唐河县| 天堂在线www天堂中文在线| 大连市| 日本国产精品第一页久久| 欧洲亚洲精品免费二区| 亚洲中文字幕在线二页| 国产呦交精品免费视频| 色就色中文字幕在线视频| 亚洲日本韩国欧美云霸高清| 日韩精品中文字幕国产一| 狠狠v日韩v欧美v| 麻豆蜜桃av蜜臀av色欲av| 精品国产精品午夜福利| 欧美xxxxx在线观看| 一级女性全黄久久片免费| 东方四虎在线观看av| 尼木县|