用户操作
[即时聊天] [发私信] [加为好友]
石头ID:shili150
1335次访问,排名2万外好友67人,关注者72
努力,拼搏,为了生活
shili150的文章
原创 10 篇
翻译 0 篇
转载 1 篇
评论 3 篇
最近评论
hdnero:wow power leveling
wxinb:写得不错!
nihuajie05:你懂日语哦...以后我抱点碟片过来,你要负责帮我翻译哦~~~
文章分类
    收藏
      相册
      gei wo
      pic
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 继承和多态收藏

      新一篇: bat常用命令(转载http://hi.baidu.com/vanciki/blog/item/77b34aed155eb9d4b31cb151.html) | 旧一篇: struts异常_does not start with a "/" character

      菜鸟教你学JAVA之继承与多态

      今天是教师节首先对全天下的教师说句:“您们辛苦了,教师节快乐!这里为您们送上一份礼物希望您能满意!”今天本菜鸟想讲一下与继承有关的多态性。当父类的某个方法被其子类重写时,可以各自产生自己的功能行为,同一个操作被不同类型对象调用时可能会产生不同的行为。

      如 果一个类有很多子类,并且这些子类都重写了父类的某个方法,当我们把子类创建的对象的引用放到一个父类的对象中,就得到了该对象的一个上转型对象,那么这 个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。例如如下这个例子,American的上转型对象调用“Speak”方法时产生的行为是“Happy Teacher's day”而Japanese的上转型对象调用“Speak”方法时产生的行为是“"教師の日、おめでとうございます”也就是说不同对象的上转型对象调用同一方法可能产生不同的行为。

      ExtendAndDuotai.java

      //******************************************

      abstract class People                            //定义了一个抽象类,不能用new创建对象,必须由子类创建对象。

      {

               public abstract void Speak();       //定义了一个抽象方法,只能声明,在子类中实现。

                }

      //***************************************

      class  American extends People             //子类American继承了父类People

      {

               public void Speak()                      //实现父类中抽象方法

                  {

                         System.out.println("Happy Teacher's day");

                        }

      }

      //***************************************************

      class  Japanese extends People                //子类Japanese继承了父类People

      {

               public void Speak()                        //实现父类中抽象方法

               {

                         System.out.println("教師の日、おめでとうございます");

                }

      }

      //******************************************************

      class  Chinese extends People                 //子类Chinese继承了父类People

      {

               public void Speak()                        //实现父类中抽象方法

               {

               System.out.println("教师节快乐!");

               }

      }

      //*****************************************************

      class ExtendAndDuotai                           //定义了一个主类,实现多态

      {

                  public static void main(String args[])

      {

                  People xiaochao;                          //父类声明了一个对象xiaochao

                  if(Math.random()<=0.33)            // Math.random()产生01的随机数

                   {

                       xiaochao=new American();        // American类的上转型对象

                   xiaochao.Speak();

                   }

                  else if(Math.random()>0.33&&Math.random()<=0.66)

                  {

                       xiaochao=new Japanese();          // Japanese类的上转型对象

                    xiaochao.Speak();

                 }

                else

                 {

                   xiaochao=new Chinese();                // Chinese类的上转型对象

                   xiaochao.Speak();

                  }

                }

      }

      运行结果:

       

      D:\java_homework1\classes>java ExtendAndDuotai

      教師の日、おめでとうございます

      D:\java_homework1\classes>java ExtendAndDuotai

      教师节快乐!

      D:\java_homework1\classes>java ExtendAndDuotai

      Happy Teacher's day

       

      发表于 @ 2008年03月25日 10:51:00|评论(loading...)|编辑

      新一篇: bat常用命令(转载http://hi.baidu.com/vanciki/blog/item/77b34aed155eb9d4b31cb151.html) | 旧一篇: struts异常_does not start with a "/" character

      评论

      #nihuajie05 发表于2008-03-25 13:00:15  IP: 121.229.204.*
      你懂日语哦...以后我抱点碟片过来,你要负责帮我翻译哦~~~
      #wxinb 发表于2008-05-06 11:47:47  IP: 220.201.36.*
      写得不错!
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 石头