博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象 多态和静态
阅读量:6034 次
发布时间:2019-06-20

本文共 1674 字,大约阅读时间需要 5 分钟。

三、多态

1.编译多态

函数重载

2.运行多态
概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态
条件:必须要有继承 父类引用指向子类实例 子类必须对父类的方法进重写

里氏代换原则:如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他

class Program    {        static void Main(string[] args)        {         DongWu dw = new Dog();                   Dog d = new Dog();            Console.WriteLine(Ceshi(dw));            Console.WriteLine(CeShi(d));            Console.ReadLine();        }        public static string CeShi(DongWu d)        {            return "ok";        }    }    class DongWu    {        public virtual string Eat() //虚方法        {            return "该动物在吃饭";        }    }    class Dog:DongWu    {        public override string Eat() //重写        {            return "狗正在吃骨头";        }    }    class Cat : DongWu    {        public override string Eat()        {            return "猫正在吃鱼";        }    }

 

静态

1.普通成员  普通成员都是属于对象的

                 用对象调用

2.静态成员  静态成员是属于类的

      用类名调用

      stactic 静态关键字

静态方法里面不能包含普通成员

普通方法里面可以包含静态成员

用处:1.为了简便

       连接数据库的时候,造连接对象类,使用静态属性直接返回连接对象。

     2.两个类之间传递信息

     3.不允许创建对象的类(对创建对象的个数有限制)

class Program    {        static void Main(string[] args)        {            ZuHe zh = new ZuHe();            //zh.name="张三"; //调用普通成员            //ZuHe.zname = "五月天"; //调用静态成员            ZuHe.Sing();            Console.WriteLine(zh.Run());            Console.ReadLine();        }    }    class ZuHe    {        public string name="李四"; //普通成员,组合里面某个人的名字        public static string zname = "李四"; //静态成员,组合名字        public static string Sing() //静态方法        {            return "正在唱歌";        }        public string Run() //普通成员        {            return zname+"正在奔跑";         }    }

 

转载于:https://www.cnblogs.com/ShenG1/p/5771367.html

你可能感兴趣的文章
Bootstrap3基础 navbar 导航条 简单示例
查看>>
南阳58--最小步数(BFS)
查看>>
(转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
查看>>
欧几里得&扩展算法&扩展欧几里得
查看>>
js常用通用函数(++++验证)
查看>>
如何使用C#开发“类ActiveX组件”
查看>>
[转] Java关键字final、static使用总结
查看>>
setTimeout,setInterval的使用小结
查看>>
webkit浏览器渲染影响因素分析
查看>>
Vue组件库工程探索与实践之按需加载
查看>>
【源码浅析】 ElementUI 的 Select 组件
查看>>
12-Flutter移动电商实战-首页导航区域编写
查看>>
我所经历的前端开发变化
查看>>
fio测试nvme性能
查看>>
node常用模块---path
查看>>
WebSocket于HTTP 、WebSocket与Socket的区别
查看>>
xpath与css的区别
查看>>
Java ClassLoader分析
查看>>
SharePoint 2010 上下左右求和
查看>>
J_Knight_ iOS 高级面试题 实战题解答以及一些扩展性链接
查看>>