学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > java >

第十一节 方法覆盖

设置字体:
----------------------------------
* 方法覆盖(override)-概念
简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称,返回类型,参数,那么我们就说子类的这个方法覆盖了父类的那个方法,比如上个案例的Cat类的cry发就覆盖了Animal类的cry方法。
* 方法覆盖(override)-注意事项
方法覆盖有很多条件,有些书说的比较细,总的讲有两点一定注意:
   ①  子类的方法返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。
       ②  子类方法不能缩小父类方法的访问权限。
* 多态-概念
  有了前面的基础,我们再看多态就相对容易了,请大家看我在Demo3_12.java上改动一下代码,从而引出多态的概念。
所谓多态,就是一个引用在不同情况下的多种状态。
你也可以这样理解:多态是指通过向父类的指针,来调用在不同子类中实现的方法。
约瑟夫问题:
         /**
          * 作者:顺平
          * 功能:丢手帕问题
        */
    package hanshi;
    public class Demo4 {
              public static void main(String[] args) {
              // TODO Auto-generated method stub
              Cyclink cyclink=new Cyclink();
              cyclink.setLen(9);
              cyclink.createLink();
              cyclink.setK(3);
              cyclink.setM(3);
              cyclink.show();
              cyclink.play();
           }
    }
    class Child
    {
            int number;
            Child nextChile=null;
            public Child(int number)
            {
               //给一个编号
                this.number=number;
             }
    }
    //环形链表
    class Cyclink
       {
           //先定义一个指向链表第一个小孩的引用
           //指向第一小孩的引用,不能动
           Child firstChild=null;
           Child temp=null;//共有几个小孩
           int len=0;
           int k=0;
           int m=0;
          //设置链表大小
           public void setLen(int len)
           {
                this.len=len;
           }
           //设置从第几个人数数
           public void setK(int k)
          {
             this.k=k;
          }
          public void setM(int m)
          {
              this.m=m;
          }
           //开始Play
----------------------------------
课程列表
重点难点
赞助链接