国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - java數(shù)組、泛型、集合在多態(tài)中的使用及對比

java數(shù)組、泛型、集合在多態(tài)中的使用及對比

2020-08-22 10:41小z同學 Java教程

本文主要介紹了java數(shù)組、泛型、集合在多態(tài)中的使用及對比。具有很好的參考價值,下面跟著小編一起來看下吧

我們在使用數(shù)組,泛型集合的過程中不可避免的會碰到多態(tài),或者說什么情況下能如何使用父數(shù)組引用子數(shù)組(集合、泛型)呢?

數(shù)組在多態(tài)中的使用

元素為父類型的數(shù)組引用可指向元素為子類型的數(shù)組對象

當數(shù)組被調用時由當前引用確定數(shù)組元素的類型

當元素為父類型的數(shù)組引用指向了元素為子類型的數(shù)組對象時,不可通過父類型的數(shù)組引用向集合加入除子類型及其下層級的之外的元素(可通過編譯,運行過程出錯)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*驗證:
 *animals和dogs可以引用同一個數(shù)組
 *當animals引用數(shù)組時,數(shù)組元素為Animal類型
 *當dogs引用數(shù)組時,數(shù)組元素為Dog類型
*/
public class Animal{
  private void showClass(){
    System.out.println("數(shù)組元素為Animal類型");
  }
  public static void main(String[] args){
    //animals和dogs可以引用同一個數(shù)組
    Dog[] dogs = {new Dog(), new Dog()};
    Animal[] animals = dogs;
    //當animals引用數(shù)組時,數(shù)組元素為Animal類型
    animals[0].showClass(); 
    //當dogs引用數(shù)組時,數(shù)組元素為Dog類型
    dogs[0].showClass();
    //不可通過父類型的數(shù)組引用向集合加入除子類型及其下層級的之外的元素(可通過編譯,運行過程出錯)
    animals[0] = new Animal();
  }
}
class Dog extends Animal{
  public void showClass(){
    System.out.println("數(shù)組元素為Dog類型");
  }
}

泛型在多態(tài)中的使用

ArrayList<父類型>無法引用ArrayList<子類型>

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*驗證:
 *animals無法引用dogs數(shù)組
 *
*/
import java.util.*;
public class Animal{
  public static void main(String[] args){
    //animals無法引用dogs數(shù)組
    ArrayList<Dog> dogs = new ArrayList<Dog>();
    ArrayList<Animal> animals = dogs;  /* 無法通過編譯 */
  }
}
class Dog extends Animal{
}

為了彌補泛型的缺陷,java引入了一種“萬用字符”——ArrayList<? extends object>

此類型集合可引用任何參數(shù)上繼承、實現(xiàn)了參數(shù)類型(包括參數(shù)類型本身)的集合

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*萬用字符
 *animals可以引用dogs集合
 *當animals引用集合時,集合元素為Dog類型
 *當dogs引用集合時,集合元素為Dog類型
 *無法通過animals對集合進行修改
 */
import java.util.*;
public class Animal{
  public void showClass(){
    System.out.println("集合元素為Animal類型");
  }
  public static void main(String[] args){
    //animals可以引用dogs數(shù)組
    ArrayList<Dog> dogs = new ArrayList<Dog>();
    dogs.add(new Dog());
    ArrayList<? extends Animal> animals = dogs; 
    //當animals引用集合時,集合元素為Dog類型
    animals.get(0).showClass();
    //當dogs引用集合時,集合元素為Dog類型
    dogs.get(0).showClass();
    //無法通過animals對集合進行修改(無法通過編譯)
    //animals.add(new Dog());
  }
}
class Dog extends Animal{
  public void showClass(){
    System.out.println("集合元素為Dog類型");
  }
}

集合在多態(tài)中的使用

當然List<object>集合可引用ArrayList<object>集合

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/zzzz76/p/6481333.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本午夜精品 | 日韩精品一 | 99精品国产一区二区青青牛奶 | 国产福利91精品一区二区三区 | 黄色av一级片 | 日韩精品免费一区二区三区 | 亚洲一区二区三区四区五区中文 | 久久久久亚洲精品 | 日韩中文在线 | 亚洲日韩中文字幕一区 | 久久久精品久久久 | 成人看片毛片免费播放器 | 欧洲视频一区 | 亚洲一区二区三 | 性农村人freesex | 福利视频网 | 亚洲成人精选 | 欧美日韩精品一区二区三区 | 欧美成人a | 黄色三级网站 | 自拍偷拍小视频 | 欧美日韩第一页 | 亚洲精品久久久一区二区三区 | 精品性 | 一区二区国产精品 | 中文字幕一区二区三 | 久久新| 国产伊人av | 国产欧美综合一区二区三区 | 香蕉久久一区二区不卡无毒影院 | 国产欧美综合一区二区三区 | 成人激情毛片 | 日本乱轮视频 | 成人h动漫在线看 | 一区二区av在线 | 午夜国产视频 | 久久精品一区二区三区四区 | 国内精品久久久久久影视8 有码在线 | 国产精品成人3p一区二区三区 | 亚洲一区中文字幕在线观看 | 欧美视频精品在线 |