激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 淺談Java抽象類和接口的個人理解

淺談Java抽象類和接口的個人理解

2021-03-10 14:33HelloWhy Java教程

這篇文章主要介紹了淺談Java抽象類和接口的個人理解,具有一定借鑒價值,需要的朋友可以參考下。

今天來說一波自己對java中抽象類接口的理解,含參考內容:

一、抽象類

1、定義:

public abstract class 類名{}

java語言中所有的對象都是用類來進行描述,但是并不是所有的類都是用來描述對象的。我所理解的抽象類其實就是對同一類事物公共部分的高度提取,這個公共部分包括屬性和行為。比如牛、羊、豬它們的公共屬性是都有毛,公共行為是都哺乳,所以我們可以把公共部分抽象成一個哺乳類,含有屬性毛和行為哺乳,當牛、羊、豬繼承了哺乳類后也就有了哺乳的功能,至于怎么完成這個功能就需要自己去實現了。

2、特點

(1)被abstract關鍵字修飾的類是抽象類;

(2)含有抽象方法的類一定是抽象類,但是抽象類不一定含有抽象方法;且抽象方法必須是public或protected,否則不能被子類繼承。默認為public。

(3)抽象方法中不能有實現,否則編譯報錯;

(4)抽象類中可以定義自己的成員變量和成員方法;

(5)子類繼承抽象類時,必須實現抽象類中的所有抽象方法,否則該子類也要被定義為抽象類;

(6)抽象類不能被實例化。

3、驗證以上規定是否確實如其所述

這是我在word中編輯的一張驗證表,把它截成圖片放在這里:

淺談Java抽象類和接口的個人理解

從上圖的驗證結果來看,那些理論都是正確的

二、接口

1、定義:

public interface 接口名{}

接口是用來提供方法的。按我的理解,它是對多個類公共行為的高度提取,比如所有的動物它們的公共行為是吃和睡,那么我們就可以將這兩個行為提取出來封裝在一個接口中,當某個動物需要執行這個行為的時候只要調用該接口,然后在自己的類里面完成具體實現就行。這樣理解好像跟抽象類沒什么區別,那再看下面的這個例子。如果把這兩個行為放在抽象類中,但是該抽象類中還有一個爬的行為,此時當一種爬行動物,比如蛇,當它繼承這個類的時候,會實現吃、睡、爬行這三個方法,于是它便有了吃、睡、爬的功能;但是如果一個飛行類的動物如鳥,當它繼承了這個方法的時候,同樣的也有了吃、睡、爬的功能,很明顯,爬不是它需要的功能,這就有點詞不達意了,但是當他們繼承了只有吃、睡的接口,就有了吃、睡的基本功能,至于爬和飛,可以抽象出來放在抽象類中,按需繼承,按需實現自己需要的功能就ok了。

2、特點:

(1)接口中可以有自己的成員變量,但會被隱式地指定為public staic final,而且也只能是public staic final的,接口中所有的方法都是抽象方法,都會被隱式地指定為public abstract的。

(2)接口中只定義抽象方法,沒有具體的實現;

(3)實現接口的類必須實現接口中定義的所有方法;

3、驗證以上理論是否正確

淺談Java抽象類和接口的個人理解

同樣,驗證出上面的理論都是對的!

三、抽象類和接口的區別:

1、抽象類中可以有自己的成員方法及它們的具體實現;接口中只能含有抽象方法;

2、抽象類中可以含有各種類型的成員變量;接口中的成員變量只能是public static final的;

3、一個類只能繼承一個抽象類,但可以實現多個接口;

4、抽象類中可以含有靜態代碼塊和靜態方法;接口中不能定義靜態代碼塊和靜態方法;

驗證一個類只能繼承一個抽象類,但能實現多個接口

首先,定義兩個抽象類:一個mummals哺乳類,一個crawler爬行類

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * @createtime 2017年3月17日 上午10:33:27
 * @description 哺乳類
 */
public abstract class mammals {
    public string foods;
    public abstract void nurse();
    public void eat(string food){
        this.foods = food;
        system.out.println("吃"+foods);
    }
}
?
1
2
3
4
5
6
7
8
/**
 *
 * @createtime 2017年3月17日 上午11:23:09
 * @description 定義一個抽象類--爬行類
 */
public abstract class crawler {
    public abstract void crawl();
}

其次,定義兩個接口:一個是baseaction基礎接口;一個是specialaction特殊接口

?
1
2
3
4
5
6
7
8
9
10
/**
 *
 * @createtime 2017年3月17日 上午11:03:42
 * @description 定義一個名為基本行為的接口
 */
public interface baseaction {
    public string name = "";
    public void eat();
    public void sleep();
}
?
1
2
3
4
5
6
7
8
/**
 * @createtime 2017年3月17日 上午11:24:56
 * @description 定義一個接口用來實現特殊行為
 */
public interface specialaction {
  
  public void study();
}

然后,定義一個基礎類people,繼承mummals類,實現baseaction接口和specialaction接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * @createtime 2017年3月17日 上午11:25:48
 * @description 定義一個普通的類--人類,繼承哺乳類,實現基礎接口和特殊接口
 */
public class people extends mammals implements baseaction,specialaction{
    @override
      public void study() {
        // todo auto-generated method stub
    }
    @override
      public void eat() {
        // todo auto-generated method stub
    }
    @override
      public void sleep() {
        // todo auto-generated method stub
    }
    @override
      public void nurse() {
        // todo auto-generated method stub
    }
}

可以看出,一個子類是可以實現多個接口的

最后,讓基礎類people,同時繼承mummals類和crawler類

?
1
2
3
4
5
6
7
8
9
10
/**
 * @createtime 2017年3月17日 上午11:25:48
 * @description 定義一個普通的類--人類,繼承哺乳類,實現基礎接口和特殊接口
 */
public class people extends mammals,crawler{
    @override
      public void nurse() {
        // todo auto-generated method stub
    }
}

總結

以上就是本文關于淺談java抽象類和接口的個人理解的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://www.cnblogs.com/hellowhy/p/6566553.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 深夜福利视频免费观看 | 免费特黄 | 欧美日本国产精品 | 黄色av免费网站 | 亚洲极色| 久久久日韩精品一区二区 | 亚洲午夜免费 | a免费视频 | 国产精品www | 女教师~淫辱の动漫在线 | 中国国语毛片免费观看视频 | 偿还电影免费看 | 视频一区二区在线观看 | 国产精品视频一区二区噜噜 | 日日摸夜夜添夜夜添牛牛 | 777zyz色资源站在线观看 | 成人三区四区 | 久久精品视频3 | 特级黄色一级毛片 | 国产精品亚洲三区 | 99久久久免费视频 | 伊人yinren22综合网色 | 毛片免费视频网站 | 欧美亚洲国产一区二区三区 | 黄色片在线免费播放 | 一区二区久久精品66国产精品 | 蜜桃成品人免费视频 | 狠狠操天天射 | 免费看h网站| 国产免费成人在线 | 久久99国产精品久久99 | 午夜精品成人 | 毛片福利 | 久久免费视频8 | 91网址在线播放 | 欧美特级一级毛片 | 久久久久久久黄色片 | 黄色毛片免费视频 | av成人免费观看 | 国产午夜精品一区二区三区免费 | 成年免费视频黄网站在线观看 |