C# 多态(接口、虚方法、抽象类)的理解

这几天正在做GDI+的一个练习程序,参考了《VC#.NET开发交互式CAD系统》这本书,书中的参考方法创建了许许多多的类和一个接口。开始我还在想接口有啥作用啊?是不是有点多此一举。然后就去网上搜索了一下接口的意义,个人感觉受益颇多,顺便把以前搜索过的内容翻出来记录总结一下。

我相信一定有很多和我一样的同学,对接口、虚方法、抽象类感觉很模糊、很生疏。这些东西用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码。

我在网上看到了一个简单易懂的例子:

首先,我们先定义一个接口:(接口的关键字interface)

public interface IBark
{
    void Bark();
}

再定义一个类,继承于IBark,并且必需实现其中的Bark()方法

public class Dog:IBark
{
    public Dog()
    {}
    public void Bark()
    {
       Consol.write("汪汪");
     }
}

Dog的一个实例,并调用Bark()方法

Dog 旺财=new Dog();
旺财.Bark();

试想一样:
       若是想调用Bark()方法,只需要在Dog()中声明这样的一个方法不就行了吗,干什么还要用接口呢?
       因为接口中并没有Bark()具体实现.真的实现还是要在Dog()中.那么使用接口不是多此一举吗?

我做练习是就是这样想的,代码如下。究竟是为啥呢?

还有人是这样说的:从接口的定义方面来说,接口其实就是类和类之间的一种协定,一种约束.还拿构会叫的例子来说.所有继承了IBark接口的类中必需实现Bark()方法.那么从用户(使用类的用户)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值