C#入门10.2——接口的实现和继承(1)

实现过程必须在实现接口的类中完成。

类继承具有单根性,接口可多重继承。

父接口也称为该接口的显示基接口。

接口多重继承时,派生接口名与父接口用冒号隔开,多个父接口之间用逗号隔开。


接口的成员之间不能同名,继承的成员不用再声明,但接口可以定义与继承而来的成员同名的成员,这称为接口成员覆盖了继承而来的成员,这不会导致错误,但编译器会给出一个警告。关闭警告提示的方法是在成员声明前加上一个new关键字。但如果没有覆盖父接口中的成员,使用new关键字会导致编译器发出警告。

    interface Interface2 : Interface1
    {
        new void Write();//如果派生接口中对显示基接口中的成员进行重定义,需要使用new来解除警告
        void Read();//不同的接口中(不包含派生)允许有同名的成员
        //string Read{get;set;} 接口之间的成员布恩那个同名,即使类型不同。
    }

    interface Interface1
    {
         void Write();
    }


引用:9.14任务实施

eagle、sparrow、ostrich都是birds,根据三者的共性,提取出鸟类作为父类;并且各自具有各自的特点,老鹰吃小鸡,麻雀吃粮食,鸵鸟吃青草。

老鹰和麻雀都会飞,如何实现这个fly功能。

1.在父类中添加fly,但是鸵鸟不会飞,所以不能加在父类中。

2.会飞的子类中添加fly功能,完全可以,但是违背开放封闭原则,下次我新加一个天鹅swan,我们还要去源码去查看fly功能是如何实现的,然后在天鹅中添加fly方法,相同的功能,重复的代码,明显不合理,也不利于扩展。


开放封闭原则:

定义:软件实体应该可以扩展,但是不可以修改。

特性:1.对扩展是开放的 2.对修改是封闭的。开放即可以操作,封闭即不可以操作。

假如我再新增一个ballon,我继承bird类合适吗?很显然不行,我们需要一种规则,这种规则就是接口。

老鹰麻雀都会飞就实现fly这个接口,鸵鸟不会飞,就不实现这个接口。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值