【黑马程序员】C#之多态

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

多态性
一句话的事儿,同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。
多态分为两种类型:
1、编译时的多态性
编译时的多态性是通过重载来实现的。方法重载和操作符重载、它们都实现了编译时的多态性。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作
2、运行时的多态性
运行时的多态性就是指直到系统运行时才根据实际情况决定实现何种操作C#中运行时的多态性。通过虚成员实现。

多态的实现方式

1、接口实现多态

2、继承实现多态

3、抽象类实现多态
综合简单实例如下:

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

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Dog dg = new Dog();
            dg.Bark("狗");
            dg.eat();
            Cat ct = new Cat();
            ct.Bark("猫");
            ct.eat();
            onePerson onp = new onePerson();
            onp.Human();
            secPerson senp = new secPerson();
            senp.Human();
            Console.ReadKey();
        }
       
    }
    //接口、继承实现多态
    public interface Eat
    {
        void eat();
    }

    public class Animal
    {
        public void Bark(string ani)
        {
            Console.WriteLine(ani+"旺旺....");
        }
    }
    class Dog:Animal,Eat
    {
        public void eat()
        {
            Console.WriteLine("小狗吃起来…………");
        }

    }
    public class Cat :Animal, Eat
    {
        public void eat()
        {
            Console.WriteLine("小猫吃起来…………");
        }
    }
    //定义抽象类实现多态
    public abstract class Person
    {
        public abstract void Human();
    }
    public class onePerson:Person
    {
        public override void Human()
        {
            Console.WriteLine("我是人类,我叫小明!");
        }
    }
    public class secPerson : Person
    {
        public override void Human()
        {
            Console.WriteLine("我也是人类,我叫小李!");
        }
    }
}

以上就是多态的简单例子。。

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值