欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

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

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

創(chuàng)新互聯(lián)是一家專業(yè)提供久治企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、成都網(wǎng)站建設H5開發(fā)、小程序制作等業(yè)務。10年已為久治眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

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

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

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

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

/*驗證:
 *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<子類型>

/*驗證:
 *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ù)類型本身)的集合

/*萬用字符
 *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>集合

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持創(chuàng)新互聯(lián)!

網(wǎng)站標題:java數(shù)組、泛型、集合在多態(tài)中的使用及對比
文章源于:http://aaarwkj.com/article6/pegcig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器全網(wǎng)營銷推廣、網(wǎng)站策劃、自適應網(wǎng)站、網(wǎng)站設計、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計
日韩免费av在线观看| 亚洲日本国产精品一区| 日韩精品一区二区在线天天狠天 | av一区二区中文字幕| 日本又色又爽又黄的观看| 蜜臀人妻四季av一区二区不卡| 日韩高清av一区二区| 18禁黄网站免费观看在线| 伊人婷婷综合激情网| 国产三级精品三级精品在一区 | 国产日韩传媒在线观看| 黑寡妇精品欧美一区二区毛| 特色特色欧美黄色影院| 后入动漫视频在线观看| 国外男女性生活在线视频| 亚洲一区乱码精品中文| 日韩国产推荐一区二区| 日本成人午夜在线观看| 日韩欧美一区二区黄色| 久草免费福利视频资源站| 麻豆影片在线免费观看| 91久久精品人妻一区二区| 麻豆精品午夜福利在线| 中文字幕一区二区av| 传媒精品视频在线观看| 97国产一区二区精品久久呦| 91欧美视频在线观看| 黄色日韩欧美在线观看| 蜜桃视频手机在线观看| 成人免费大片在线观看视频| 久久久亚洲福利精品午夜| 人妻猛烈进入中文字幕| 亚洲日本中文字幕免费观看| 日韩av一区三区在线| 亚洲一区制服无码中文| 欧美精品一区二区三区黄片| 97在线视频在线播放| 国内一级片内射免费视频观看| 综合资源网日韩天天操| 五月婷婷综合中文字幕在线| 国产精品1区2区久久久|