<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李順利
    隨筆-50  評論-170  文章-0  trackbacks-0

    這篇博文不說很多,直接上代碼。

    import java.util.ArrayList;
    
    import java.util.List;
    
    /**
    
     *
    
     * @author ShunLi
    
     */
    
    public class ExtendTest {
    
        public static void main(String[] args) {
    
            List<Person> pList = new ArrayList<Person>();
    
            pList.add(new Person());
    
            pList.add(new Person());
    
            List<Animal> aList = new ArrayList<Animal>();
    
            aList.add(new Animal());
    
            doSomething(pList);
    
            doSomething(aList);
    
        }
    
        static void doSomething(List<? extends Base> obj){
    
            for (Base base : obj) {
    
                base.doSomething();
    
            }
    
        }
    
    }
    
    interface Base{
    
         void doSomething();
    
    }
    
    class Person  implements Base{
    
        public void doSomething() {
    
            System.out.println("Person");
    
        }
    
    }
    
    class Animal implements Base{
    
        public void doSomething() {
    
            System.out.println("Animal");
    
        }
    
    }
    
    ////////////////////////////////////////////////////////////////
    
    import java.util.ArrayList;
    
    import java.util.List;
    
    /**
    
     *
    
     * @author ShunLi
    
     */
    
    abstract class Base {
    
        abstract void doSomething();
    
    }
    
    class Person extends Base {
    
        public void doSomething() {
    
            System.out.println("Person");
    
        }
    
    }
    
    class Animal extends Base {
    
        public void doSomething() {
    
            System.out.println("Animal");
    
        }
    
    }
    
    public class ExtendTest2 {
    
        public static void main(String[] args) {
    
            List<Person> pList = new ArrayList<Person>();
    
            pList.add(new Person());
    
            pList.add(new Person());
    
            List<Animal> aList = new ArrayList<Animal>();
    
            aList.add(new Animal());
    
            doSomething(pList);
    
            doSomething(aList);
    
        }
    
        static void doSomething(List<? extends Base> obj) {
    
            for (Base base : obj) {
    
                base.doSomething();
    
            }
    
        }
    
    }
    
    ////////////////////////////////////////////////////////////////
    
    import java.util.ArrayList;
    
    import java.util.Arrays;
    
    import java.util.Collections;
    
    import java.util.List;
    
    /**
    
     *
    
     * @author ShunLi
    
     */
    
    abstract class Base {
    
        abstract void doSomething();
    
    }
    
    class Person extends Base {
    
        public void doSomething() {
    
            System.out.println("Person");
    
        }
    
    }
    
    class Animal extends Base {
    
        public void doSomething() {
    
            System.out.println("Animal");
    
        }
    
    }
    
    public class ExtendTest3 {
    
        public static void main(String[] args) {
    
            List<Base> bases = new ArrayList<Base>();
    
            bases.addAll(getPersons());
    
            doSomething(bases);
    
            bases.clear();
    
            bases.addAll(getAnimals());
    
            doSomething(bases);
    
            doSomething(Arrays.<Base> asList(new Person(), new Animal()));
    

    doSomething(Arrays.asList(new Person(), new Animal()));

            bases.clear();
    
            Collections.addAll(bases, new Person(), new Animal());
    
            doSomething(bases);
    
        }
    
        private static List<Animal> getAnimals() {
    
            List<Animal> aList = new ArrayList<Animal>();
    
            aList.add(new Animal());
    
            return aList;
    
        }
    
        private static List<Person> getPersons() {
    
            List<Person> pList = new ArrayList<Person>();
    
            pList.add(new Person());
    
            pList.add(new Person());
    
            return pList;
    
        }
    
        static void doSomething(List<Base> obj) {
    
            for (Base base : obj) {
    
                base.doSomething();
    
            }
    
        }
    
    }
    

    得出一些結論(個人體會,不保證正確):

    1. 抽象類抽象方法和接口差不多,而且個人以前沒有理解過的是在 ExtendTest中,也可以使用List<implement> –> List<? extends Base>,接口還是可以理解成繼承的;

    2. ExtendTest3 中 Arrays.<Base> asList(new Person(), new Animal()) 這種寫法還是從 《Thinking In Java》看到的,當然你可以忽略中間<Base>這樣的書寫;

    3. 其它。

     

    順利寫于2011年10月28日



    博客中的一些下載已經放到了百度云了,請根據需要下載。【點我去百度云下載】

    最后弱弱地說一下,如果可以的話,轉載請提供出處( ),謝謝。
    posted on 2011-10-28 23:41 李順利 閱讀(621) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲成网777777国产精品| 亚洲精品美女久久久久| 日本免费污片中国特一级| 亚洲精品亚洲人成在线观看麻豆 | 国产精品hd免费观看| 亚洲国产综合专区在线电影| 两性刺激生活片免费视频| 国产亚洲欧美日韩亚洲中文色| 亚洲五月综合缴情在线观看| 四虎免费影院ww4164h| 特级做a爰片毛片免费看| 亚洲成a人不卡在线观看| 亚洲国产成人精品久久久国产成人一区二区三区综 | 成全视频免费观看在线看| 亚洲人成人伊人成综合网无码| 亚洲一级片内射网站在线观看| 日本免费一区二区在线观看| 一边摸一边桶一边脱免费视频| 亚洲成a人片在线观看中文!!!| 国产精品亚洲高清一区二区| 久久受www免费人成_看片中文| 一级毛片一级毛片免费毛片| 亚洲国产精品综合久久网各| 亚洲国产精品自在拍在线播放| 57PAO成人国产永久免费视频| 国产视频精品免费视频| 亚洲中文字幕乱码一区| 久久久久亚洲精品无码系列| 国产在线观看免费完整版中文版| 日本一卡精品视频免费| 一级一级一级毛片免费毛片| 亚洲mv国产精品mv日本mv| 亚洲精品少妇30p| 免费人妻av无码专区| 免费无码AV片在线观看软件| 男人进去女人爽免费视频国产| 曰批免费视频播放免费| 亚洲日韩国产AV无码无码精品| 67pao强力打造67194在线午夜亚洲| 亚洲无码黄色网址| 国产极品粉嫩泬免费观看|