ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c#多态性测试小例

c#多态性测试小例

原创 Linux操作系统 作者:wisdomone1 时间:2012-03-18 15:54:24 0 删除 编辑

基类

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Class1
    {
        private  int length;
        private  int weight;
        public int x;
        public int y;
        public int LENGTH
        {
            get
            {
                return length;
            }
            set
            {

                length = value < 0 ? -value : value;
            }
        }

        public int WEIGHT
        {
            get
            {
                return weight;
            }
            set
            {

                weight = value < 0 ? -value : value;
            }
        }

        public  int area;
        public Class1(int l, int w)
        {
            length = l;
            weight = w;
        }
       
        public  void SetArea()
        {
            area = length * weight;
        }
        public  virtual int Area()
        {
            return area;
        }
    }
}

 

派生类

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Subclass1:Class1
    {
        public Subclass1(int l,int w):base(l,w)
        {
        }
        public override int Area()
        {
            return base.Area()+10;
        }
      
    }
}

 

 

调用

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;//arraylist派生于array类

namespace ConsoleApplication1
{
    class Program
    {
       //学习多态性
      public static void Main(string[] args)
      {
          Class1 base1 = new Class1(1,1);
          Subclass1 sub1 = new Subclass1(10,10);

          //通过基类引用变量指向基类的对象及派生类的对象,导致在运行时调用派生类重写基类的方法area
          Class1 ref1;
          ref1 = base1;
          ref1.SetArea();
          Console.WriteLine(ref1.Area());
         
          ref1 = sub1;
          ref1.SetArea();
          Console.WriteLine(ref1.Area());
          Console.ReadKey();
      }
    }
   
}

 

 

小结;

        多态性是发生于继承情况下

       声明virtual及override

       声明一基类引用变量,通过其指向基类或派生类对象

       多态性最终运行是基类引用变量=右边的指向基类或派生类对象的重写方法

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-718875/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2149
  • 访问量
    11893102