亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我不理解 java 中的通配符

我不理解 java 中的通配符

喵喔喔 2021-06-18 15:37:50
我有課:class Animal{    public void type(){        System.out.println("I am Animal");    }}class Dog extends Animal{    public void type(){        System.out.println("I am Dog");    }}class Cat extends Animal{    public void type(){        System.out.println("I am Cat");    }}class Haski extends Dog{    public void type(){        System.out.println("I am Haski");    }}我創建List有wildcards:List<? extends Animal> animalList = new ArrayList<Animal>();我知道我無法向animalList. 我在不同的書籍、互聯網上的文章、視頻課程中都讀到過它,但我仍然不明白為什么?如果我們結animalList只包含對象,extends Animal為什么java不能添加任何對象并將其objects extends Animal強制轉換為Animal?animalList.add(new Dog()); //cast dog to AnimalanimalList.add(new Cat()); //cast cat to Animal編譯器有足夠的信息 -objects extends Animal為什么它不能轉換?編輯:所以我不明白。List<Animal> animalList1 = new ArrayList<Animal>();animalList.add(new Animal());animalList.add(new Dog());animalList.add(new Cat());animalList.add(new Haski());和List<? extends Animal> animalList有一種感覺,他們應該是一樣的。但我感覺不到原理上的區別
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號