zoukankan      html  css  js  c++  java
  • C#中的多态性

      1、重载(overload)

     public void Sleep()
            {
                Console.WriteLine("Animal睡觉");
            }
            public int Sleep(int time)
            {
                Console.WriteLine("Animal{0}点睡觉", time);
                return time;
            }

      2、重写(override)

      public virtual void EatFood()
            {
                Console.WriteLine("Animal吃东西");
            } 
    
    public override void EatFood()
            {
                Console.WriteLine("Cat吃东西");
                //base.EatFood();
            }
    View Code

    3、虚方法:即为基类中定义的允许在派生类中重写的方法,使用virtual关键字定义

    在派生类中通过override重载该方法,通过基类变量引用派生类对象,来访问派生类中重载的这个同名方法

    class  Shape
    {
       private int x;
       private int y;
       public Shape(int sx,int sy)
      {
       x=sx;
       y=xy;
      }
       public virtual float Area()
      {
        return 0.0f
      }
    }
    class Rectangle:Shape
    { 
        private int w;
        private int h;
        public  Rectangle(int rx,int ry ,int rw,int rh):base(rx,ry)--调用父类的方法 --this 则是调用自己的方法
      {
        w=rw;
        h=rh;
      } 
       pulic override float Area()
      {
       return w*h;
       }
    }
    
    class Program
    {
       static void Main(string[] args)
      {
          Shape myshape;
          Rectangle r = new  Rectangle (2,2,10,26);
          myshape=r;
    console.writeline(myshape.Area());//父类变量引用子类的对象,调用子类中的同名方法
      
    
      }
    }
    View Code
    111111
  • 相关阅读:
    深入理解Java中停止线程
    浅入浅出JDBC————1分钟了解JDBC
    Java多线程入门中几个常用的方法
    创建Java多线程的两种方式和线程异常
    小白学习前端---第二天 HTML的基本属性————1
    Info类
    Control类
    demo 代码
    防作弊原理
    状态类
  • 原文地址:https://www.cnblogs.com/whl4835349/p/6031299.html
Copyright © 2011-2022 走看看