抽象類、介面

来源:http://www.cnblogs.com/zhaotiancheng/archive/2016/12/30/6235150.html
-Advertisement-
Play Games

為什麼要用抽象類: 子類萬一沒有重寫正確,也沒有提示。 假設父類的代碼如下 子類中的代碼如下:對父類中的方法的重寫 這樣的代碼,在Eclipse中是不會報錯的; 抽象類:不知道是具體什麼東西的類。 寫法:abstract class 類名 抽象方法:不知道是具體是做什麼的方法; 寫法:abstrac ...


為什麼要用抽象類:

    子類萬一沒有重寫正確,也沒有提示。 

假設父類的代碼如下

public class USB {
     public void QiDong(){
            
     }
     public void TingZhi(){
         
     }
}

子類中的代碼如下:對父類中的方法的重寫

public class UPan extends USB {      
    public void Qidong(){            //這裡的Qidong 並不是對父類函數的重寫
        System.out.println("u盤啟動了");
    }
    public void TingZhi(){
        System.out.println("u盤停止運行了");
    }
}

這樣的代碼,在Eclipse中是不會報錯的

抽象類:不知道是具體什麼東西的類。

寫法:abstract class 類名

public abstract class USB {

}

抽象方法:不知道是具體是做什麼的方法;

寫法:abstract 返回類型 函數名(形參);      抽象方法不需要寫函數體

派生類中,可以不實現某些抽象方法,但派生類必須要聲明為抽象類。
抽象類中,可以有抽象方法,也可以有非抽象方法。抽象類中還可以有成員變數。

public abstract class USB {
      public  String JiaGe;

     public abstract void QiDong();
public abstract void TingZhi(); }

 

 介面:

介面的作用:主要是起一個約束的作用  可以理解成為構架一個大框  代碼格式只能按照規定的格式寫

定義:      文件—新建—介面       // 介面名首字母加一個大寫的I

介面定義時,介面名字儘量是形容詞,或者描述性的詞

介面的內容儘量的少,方便靈活使用         —介面分離原則

interface 介面名 extends 父介面列表{

    final 類型 常量名=值;                     //規定了需要按照什麼格式去寫,如果和這個格式不統一,就會報錯

    public void 方法名(形參);
}

 介面的實現:

 abstract class 類名 extends 父類 implements 介面列表{

 

 前面說道介面的作用就是約束,那麼具體來看一下是怎麼約束的

創建一個介面     新建—介面   在介面中錄入以下代碼

public interface IJiSuan {

    public int a=0;
    
    public void Suan(int a, int b);
}

然後我們新建一個類   新建-類  添加介面,點擊確定,就會自動生成以下代碼;

public abstract class YunSuan implements IJiSuan {

    @Override
    public void Suan(int a, int b) {
        // TODO 自動生成的方法存根

    }

}

假設我們將方法名改成   suan   系統就會自動報錯

 

 final  可以修飾成員變數(常量)、成員方法(不允許重寫)、類(不允許被繼承) 

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • demo:https://github.com/dunitian/DNTLive/tree/master/Software/WaterMarkAPP/LoTWaterAPP 說起這個人臉識別,還真有點緣分。記得逆天以前在學生時代參加創新大賽的時候,題目就是人臉識別打卡 解決別人替人打卡的問題,想想看 ...
  • 看過我WPF 微信 MVVM這篇文章的朋友,應該知道我裡面提到了我有一個小號是無法獲取列表的,始終也沒找到原因。 前兩天經過GitHub上h4dex大神的指導,知道了原因,是因為微信在登錄以後,web微信採取了不同的功能變數名稱來相容各種用戶。 下麵是大神提供的js代碼和C#代碼 function () { ...
  • 今日問題: 請問主程式輸出結果是什麼?(點擊以下“【Java每日一題】20161230”查看20161229問題解析) 題目原發佈於公眾號、簡書:【Java每日一題】20161230,【Java每日一題】20161230 註:weknow團隊近期開通並認證了分答,歡迎大家收聽,有問題也歡迎到分答來咨 ...
  • 一、方法函數 函數也稱為方法,就是定義在類中的具有特定功能的一段獨立代碼。用於定義功能,提高代碼的復用性。 函數的特點1> 定義函數可以將功能代碼進行封裝,便於對該功能進行復用;2> 函數只有被調用才會被執行;3> 對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那麼該函數中的retu ...
  • 1、什麼是指針? 指針就是地址。 為了說清楚什麼是指針,必須先弄清楚數據在記憶體中是如何存儲的,又是如何讀取的。 如果在程式中定義了一個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。編譯系統根據程式中定義的變數的類型,分配一定長度的空間。 記憶體區的每一個位元組都會有一個編號,這就是“地址”, ...
  • 前提: 1.已安裝python版本(一般都是2.X) 2.已安裝easy_install python安裝,記得配置Python的環境變數,例如:我的直接在Path上加 G:\Python 驗證安裝Python成功:cmd 輸入python 或者python -V 這是下載easy_install的 ...
  • 關於volatile,找了一堆資料看,看完後想找一個方法去做測試,測了很久,感覺跟沒有一樣。 這本書《深入理解Java記憶體模型》,對volatile描述中有這樣一個比喻的說法,如下代碼所示,對a的讀寫相當於對b的同步讀寫。 也就是說,volatile只保證了讀與寫的同步,每次讀取都是得到最新值,每次 ...
  • 1. 前言 Java和C++之間顯著的一個區別就是對記憶體的管理。和C++把記憶體管理的權利賦予給開發人員的方式不同,Java擁有一套自動的記憶體回收系統(Garbage Collection,GC)簡稱GC,可以無需開發人員干預而對不再使用的記憶體進行回收管理。 垃圾回收技術(以下簡稱GC)是一套自動的內 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...