亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java抽象類和接口定義與用法詳解

 更新時(shí)間:2020年02月12日 09:23:11   作者:扎心了,老鐵  
這篇文章主要介紹了java抽象類和接口定義與用法,結(jié)合實(shí)例形式詳細(xì)分析了java抽象類和接口的基本概念、原理、定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了java抽象類和接口定義與用法。分享給大家供大家參考,具體如下:

抽象類

抽象類定義

只約定類所具有的抽象行為,沒(méi)有具體實(shí)現(xiàn)相應(yīng)行為。

語(yǔ)法格式

abstract class 類名{
 常量;
 變量;
 構(gòu)造();
 訪問(wèn)修飾符abstract 返回類型 方法名;//抽象方法
 普通方法;
 靜態(tài)方法();
}

應(yīng)用場(chǎng)景

1.不適合創(chuàng)建對(duì)象。

2.有些功能沒(méi)有必要實(shí)現(xiàn),有不同的子類實(shí)現(xiàn)。

3.每次使用的都是子類的對(duì)象。

4.為所有的子類提供了一個(gè)模板,所有的子類都是在此模板的基礎(chǔ)之上添加和修改完善功能而創(chuàng)建出來(lái)的。

注意事項(xiàng)

1.不能創(chuàng)建對(duì)象。

2.必須由子類繼承使用。

3.普通的子類必須實(shí)現(xiàn)抽象類中的所有抽象方法。(抽象子類除外)

4.構(gòu)造方法不能是抽象的。

5.abstract不能和private、final、static一起使用。

6.抽象類中的抽象方法不是必須的,可以寫,可以不寫。

abstract class TrafficTool1{
 int count;
 public abstract void run() ;//抽象方法
}
class Car2 extends TrafficTool1{
 @Override
 public void run() {
  System.out.println("汽車在公路上行駛");
 }
}
class Tube2 extends TrafficTool1{
 public void run() {
  System.out.println("地鐵在 地下行駛");
 }
}
public class TestTrafficTool1 {
 public static void main(String[] args) {
  Car2 c2 = new Car2();
  c2.run();
  Tube2 t2 = new Tube2();
  t2.run();
 }
}

接口

定義接口

提供了一組規(guī)則。

訪問(wèn)修飾符 interface 接口名{//所有成員都是public
 常量;//public static final
 抽象方法;//public abstract
 默認(rèn)方法;//public default 類型 名(){實(shí)現(xiàn)}
 靜態(tài)方法;//public static 類型 名(){實(shí)現(xiàn)}
   //不能被 實(shí)現(xiàn)類繼承
   //不能被 子接口繼承
 靜態(tài)內(nèi)部類型;//(public static 內(nèi)部類,內(nèi)部接口,內(nèi)部枚舉)
}

接口特點(diǎn)

1.接口不能創(chuàng)建對(duì)象。

2.由實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)功能。

3.普通的實(shí)現(xiàn)類,必須實(shí)現(xiàn)接口中的所有抽象方法。(抽象實(shí)現(xiàn)類除外)

4.實(shí)現(xiàn)類可以實(shí)現(xiàn)多個(gè)接口的功能。

5.接口之間可以繼承,而且可以多繼承。

接口注意事項(xiàng)

1.靜態(tài)方法不能被繼承。靜態(tài)方法用 接口名.靜態(tài)方法名調(diào)用

2.實(shí)現(xiàn)多個(gè)接口方法名相同的處理

接口在開發(fā)中,提供了一組規(guī)則和規(guī)范,一旦發(fā)布了,就不要更改了。

解決問(wèn)題:用default

interface WebBank{
 void webService();//網(wǎng)上支付功能
 //public abstract void webService();
 default void fd() {}
}
//實(shí)現(xiàn)類
class Jingdong implements WebBank{
 @Override
 public void webService() {
  System.out.println("京東實(shí)現(xiàn)了支付功能");
 }
 public void show() {}
}
class Taobao implements WebBank{
 public void webService() {
  System.out.println("淘寶實(shí)現(xiàn)了支付功能");
 }
}
public class TestWebBank {
 public static void main(String[] args) {
  WebBank web = new Jingdong();
  web.webService();
  web.fd();
//  web.show();//屏蔽
/*  Jingdong jd = new Jingdong();
  jd.webService();
  Taobao tb = new Taobao();
  tb.webService();*/
 }
}

接口和抽象類的異同

相同

1.都不能創(chuàng)建對(duì)象

2.都需要用子類或?qū)崿F(xiàn)類來(lái)繼承或?qū)崿F(xiàn)。

3.都可以包含抽象方法。

4.普通的子類或?qū)崿F(xiàn)類需要實(shí)現(xiàn)所有的抽象方法(抽象的除外)。

不同

1.抽象類是個(gè)類,是個(gè)模板類,為子類提供模板,是個(gè)半成品。

2.接口是提供了一個(gè)功能,是一個(gè)規(guī)范。

3.抽象類 子類是單一繼承。

4.實(shí)現(xiàn)類 可以實(shí)現(xiàn)多個(gè)接口。

5.接口之間可以多繼承。

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Storm框架整合springboot的方法

    Storm框架整合springboot的方法

    Storm框架中的每個(gè)Spout和Bolt都相當(dāng)于獨(dú)立的應(yīng)用,Strom在啟動(dòng)spout和bolt時(shí)提供了一個(gè)open方法(spout)和prepare方法(bolt)。這篇文章主要介紹了Storm框架整合springboot的方法,需要的朋友可以參考下
    2018-11-11
  • flowable表梳理步驟詳解

    flowable表梳理步驟詳解

    這篇文章主要介紹了flowable表梳理步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 解決SpringBoot連接SqlServer出現(xiàn)的問(wèn)題

    解決SpringBoot連接SqlServer出現(xiàn)的問(wèn)題

    在嘗試通過(guò)SSL與SQL?Server建立安全連接時(shí),如果遇到“PKIX?path?building?failed”錯(cuò)誤,可能是因?yàn)槲茨苷_配置或信任服務(wù)器證書,當(dāng)"Encrypt"屬性設(shè)置為"true"且"trustServerCertificate"屬性設(shè)置為"false"時(shí),要求驅(qū)動(dòng)程序使用安全套接字層(SSL)加密與SQL?Server建立連接
    2024-10-10
  • solr在java中的使用實(shí)例代碼

    solr在java中的使用實(shí)例代碼

    本篇文章主要介紹了solr在java中的使用實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java字符串轉(zhuǎn)駝峰格式的方法

    Java字符串轉(zhuǎn)駝峰格式的方法

    在開發(fā)場(chǎng)景中,我們會(huì)遇到一些涉及字符串的轉(zhuǎn)化,本文主要介紹了Java字符串轉(zhuǎn)駝峰格式的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 利用Jmeter發(fā)送Java請(qǐng)求的實(shí)戰(zhàn)記錄

    利用Jmeter發(fā)送Java請(qǐng)求的實(shí)戰(zhàn)記錄

    JMeter是Apache組織的開放源代碼項(xiàng)目,它是功能和性能測(cè)試的工具,100%的用java實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Jmeter發(fā)送Java請(qǐng)求的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java多線程的用法詳細(xì)介紹

    Java多線程的用法詳細(xì)介紹

    這篇文章主要介紹了Java多線程的用法詳細(xì)介紹的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • springboot集成mybatisplus的詳細(xì)步驟

    springboot集成mybatisplus的詳細(xì)步驟

    MyBatis-Plus (opens new window)(簡(jiǎn)稱 MP)是一個(gè) MyBatis (opens new window)的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生,這篇文章主要介紹了springboot四步集成mybatisplus,需要的朋友可以參考下
    2022-10-10
  • 使用Mybatis Generator結(jié)合Ant腳本快速自動(dòng)生成Model、Mapper等文件的方法

    使用Mybatis Generator結(jié)合Ant腳本快速自動(dòng)生成Model、Mapper等文件的方法

    這篇文章主要介紹了使用Mybatis Generator結(jié)合Ant腳本快速自動(dòng)生成Model、Mapper等文件的方法的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 學(xué)習(xí)Java多線程之同步

    學(xué)習(xí)Java多線程之同步

    這篇文章主要為大家詳細(xì)介紹了Java多線程之同步,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評(píng)論