var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>

          jutleo
          歡迎走進有風的地方~~
          posts - 63,  comments - 279,  trackbacks - 0
          在實際操作中,多態可以讓我不用關心某個對象到底是什么具體類型,就可以使用該對象的某些方法,而這些方法通過一個抽象類或者接口來實現,多態就是提供父類調用子類代碼的一個手段而已
          abstract class Person
          {
              
          private String name;
              
          private int age;
              Person(String name,
          int age)
              
          {
                  
          this.name = name;
                  
          this.age = age;
              }

              
              
          abstract void say();
          }


          class Student extends Person
          {
              Student(String name,
          int age)
              
          {
                  
          super(name,age);
              }

              
          public void say()
              
          {
                  System.out.println(
          "I'am a Student");
              }

          }


          class Teacher extends Person
          {
              
          private String profession;
              Teacher(String name,
          int age,String profession)
              
          {
                  
          super(name,age);
                  
          this.profession = profession;
              }

              
          public void say()
              
          {
                  System.out.println(
          "I'am a Teacher");
              }

          }


          class School
          {
              
          private String schoolname;
              
          private Person person;
              School(String schoolname,Person person)
              
          {
                  
          this.schoolname = schoolname;
                  
          this.person = person;
              }

              
          public void foundPerson()
              
          {
                  person.say();
              }

          }


          public class TestPolymoph 
          {
              
          public static void main(String[] args) 
              
          {
                  Student studnet 
          = new Student("lisi",21);
                  Teacher teacher 
          = new Teacher("dudu",29,"maths");
                  School school1 
          = new School("changning",studnet);
                  School school2 
          = new School("changning",teacher);
                  school1.foundPerson();
          //I'am a Student
                  school2.foundPerson();//I'am a Teacher
              }

          }
          School方法傳遞了抽象類Person,具體調用時是根據具體的實際實例化的對象調用對應的方法
          posted on 2007-12-03 11:26 凌晨風 閱讀(1673) 評論(2)  編輯  收藏 所屬分類: Java學習筆記

          FeedBack:
          # re: Java中的多態
          2007-12-03 12:54 | 專注java開源
          收藏~  回復  更多評論
            
          # re: Java中的多態[未登錄]
          2007-12-04 11:17 | Thinker
          準確的說,Student和Teacher并不能成為Person的子類。  回復  更多評論
            

          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 中超| 富阳市| 神农架林区| 项城市| 堆龙德庆县| 米易县| 宜君县| 财经| 漾濞| 吐鲁番市| 本溪| 龙州县| 德州市| 莆田市| 双鸭山市| 霍林郭勒市| 历史| 兰坪| 鹰潭市| 怀宁县| 库尔勒市| 苍南县| 察隅县| 金华市| 眉山市| 永宁县| 全椒县| 田东县| 南岸区| 抚顺县| 安阳县| 太保市| 前郭尔| 阳城县| 唐山市| 墨玉县| 西林县| 吉安县| 乌兰浩特市| 邯郸县| 北流市|