OOP中的多态

    虽然一直在说OOP,但说实话还不是真正的理解,面向对象的三个基本特性继承、封装、多态,前两个性质以前

有接触听的比较多还好理解,下面主要介绍一下第三个特性——多态。

1. 定义

    同一操作作用于不同的对象,可以有不同的解释,产生不同的结果,这就是多态。一种接口多种实现。

2. 实现

    通过派生类覆写基类中的虚函数型方法来实现的

3. 种类

    编译时多态性:重载实现

    运行时多态性:覆写虚成员实现

4. 重载和覆写的区别

    重载(两必须一可以):方法名必须相同,参数列表必须不同,返回值类型可以不同

    覆写(三相同):方法名,参数列表,返回值类型必须相同

5. 用到了向上转型的功能

6. 多态的重要性

    设计模式中用到了大量的多态

7多态和继承的区别

    多态是父类使用子类的方法,继承是子类使用父类的方法

8.下面是学习C#实现播放DVD和VCD敲的例子,大家可以结合我写的注释好好理解一下

7.	using System;
8.	using System.Collections.Generic;
9.	using System.Linq;
10.	using System.Text;
11.	using System.Threading.Tasks;
12.	
13.	namespace 多态的例子2
14.	{
15.	    class Program
16.	    {
17.	        static void Main(string[] args)
18.	        {
19.	            //DVD dvd = new DVD();                             //虽然实现了多态但调用方法未实现多态
20.	            //Console.WriteLine(dvd.PlayVideo());
21.	            //VCD vcd = new VCD();
22.	            //Console.WriteLine(vcd.PlayVideo());
23.	            Program tt = new Program();                               //实例化过程
24.	            tt.PlayVideo();
25.	        }
26.	        public void PlayVideo()
27.	        {
28.	            VideoShow vw;                                           //调用了多态
29.	            vw = new DVD();
30.	            Console.WriteLine(vw.PlayVideo());
31.	            vw = new VCD();
32.	            Console.WriteLine(vw.PlayVideo());
33.	        }
34.	    }
35.	    public abstract class VideoShow                       //定义抽象超类,所有派生于抽象类的派生类必须实现其方法
36.	    {
37.	        public abstract string PlayVideo();
38.	    }
39.	    public class VCD : VideoShow
40.	    {
41.	        public override string PlayVideo() //派生类
42.	        {
43.	            return "正在播放VCD";
44.	        }
45.	    }
46.	    public class DVD : VideoShow
47.	    {
48.	        public override string PlayVideo()
49.	        {
50.	           return "正在播放DVD";
51.	        }
52.	    }




评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值