设为首页收藏本站【C#】第十章 多态与接口
繁体中文

单小喏中文网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

单小喏中文网欢迎你的光临!!!
查看: 2501347|回复: 0

【C#】第十章 多态与接口

[复制链接]

85

主题

89

帖子

1246

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1246

来自- 安徽合肥

扫一扫,手机访问本帖
发表于 2014-5-4 21:25:26 | 显示全部楼层 |阅读模式
【C#】第九章 OOP之——类继承及多态中,我们说过一个类只要我们愿意,就可以无限的继承下去,并且可以实现无限扩展。从父类往子类实例化调用相应的成员和方法的过程,我们称为里氏替换原则(多态)。多态指对象可以表示多个类型的能力,同一个操作作用于不同类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。可以说,多态完全是由类的方法重载、覆盖、重写、抽象方法的实现来体现的。

我们来比较一下,它们的异同点:
方法重载:在同一个类中,方法名相同、参数个数、类型不同。

方法覆盖:在子类中方法与父类同名、参数个数、类型、(返回值可以不一致)都一致。父类向子类实例化,调用的方法只能是父类的,子类中有没有其他的方法都会被覆盖。

方法重写:在父类中方法不覆盖子类的方法,父类方法加上virtual,子类方法与父类方法同名、参数个数、类型、返回值都要一致,并且加上override。

抽象方法的实现:父类的方法加上abstract并且没有方法体,由子类加上override去实现,当然子类方法与父类方法同名参数个数、类型、返回值都要一致。

在以上运用中,我们知道,一个类无法继承多个类,接口interface可以解决这个问题。语法规则:
interface ITest{}
接口不能有变量、常量,但是可以有属性、方法、索引器,但是这些成员都不能有具体的实现;
接口中成员都不能加上访问修饰符,默认为public。
接口1:
[C#] 纯文本查看 复制代码
namespace test
{
    interface ITest1
    {
        //接口不能有变量、常量,但是可以有属性、方法、索引器,但是这些成员都不能有具
体的实现。
        //接口中成员都不能加上访问修饰符,默认为public
        string Name
        {
            get;//属性不能有实现
            set;
        }
    }
}


接口2:
[C#] 纯文本查看 复制代码
namespace test
{
    interface ITest2
    {
        void Say();
    }
}


实现类:
[C#] 纯文本查看 复制代码
namespace test
{
    class Class11 : ITest1, ITest2 //多继承
    {
        private string name;//先要在实现类中声明对应属性的字段
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        //实现类的中方法修饰符必须是public
        public void Say()
        {
            Console.WriteLine("我是方法的实现");
        }
    }
}


调用测试:
[C#] 纯文本查看 复制代码
//接口中不能有构造方法,所以不能实例化
            //ITest1 it1=new ITest1():
            ITest1 it1 = new Class11();
            it1.Name = "张三";
            //这样可以体现多态性,并且后续软件可以当做工厂式来进行开发
            ITest2 it2 = new Class11();
            it2.Say();
本文章来源于:学玩网





上一篇:【C#】第九章 OOP之类继承及多态
下一篇:【C#】三种命名法则

帖子地址: 



+1
2501347°C
沙发哦 ^ ^ 马上
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
发评论,即可赢取积分欧!

申请友链|意见反馈|小黑屋|手机版|Archiver|单小喏中文网 ( 皖ICP备13012632号-1 |网站地图  

GMT+8, 2016-12-8 17:52 , Processed in 0.243054 second(s), 48 queries .

Powered by danxiaonuo

© 2013-2016 danxiaonuo.

快速回复 返回顶部 返回列表