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 凌晨風 閱讀(1676) 評論(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)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新化县| 和政县| 航空| 云安县| 延长县| 永定县| 广西| 邹城市| 马边| 海淀区| 五常市| 忻城县| 英德市| 甘孜县| 西畴县| 沈丘县| 双峰县| 永定县| 新和县| 芒康县| 桂阳县| 汾西县| 尼勒克县| 库伦旗| 普安县| 镇赉县| 武功县| 准格尔旗| 乐业县| 潼关县| 乌拉特后旗| 安达市| 卫辉市| 康乐县| 台南县| 勃利县| 冷水江市| 葵青区| 和政县| 彭州市| 从化市|