A.NET教程:抽象类和接口的比较.(3)[图]_.NET概论及软件使用_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

A.NET教程:抽象类和接口的比较.(3)[图]

作者:黑客防线网安ASP维护基地 来源:黑客防线网安ASP维护基地 浏览次数:0

本篇关键词:接口比较抽象教程
黑客防线网安网讯:     提示:1. 引言 在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理...

     提示:1. 引言 在我之前的一篇post《抽象类和接口的谁是谁非》中和同事管伟的讨论得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉同时,我将把上贴中的问题顺便

 

4.2 别样小菜

下面的实例,因为是我的理解,因此给经典打上“相对”的记号,至于什么时候晋升为“绝对”,就看我在.NET追求的路上,是否能够一如既往的如此执着,因此我将把相对重构到绝对为止(呵呵) 本示例没有阐述抽象类和接口在设计模式中的应用,因为那将是另一篇有讨论价值的文本,本文着眼与概念和原则的把握,但是真正的应用来自于具体的需求规范。

设计结构如图所示:

1. 定义抽象类

以下为引用的内容:
public abstract class Animal
{
    protected string _name;
    //声明抽象属性
    public abstract string Name
    {
        get;
    }

    //声明抽象方法
    public abstract void Show();

    //实现一般方法
    public void MakeVoice()
    {
        Console.WriteLine("All animals can make voice!");
    }
}
 


2. 定义接口

以下为引用的内容:
public interface IAction
{
    //定义公共方法标签
    void Move();
}

3. 实现抽象类和接口

以下为引用的内容:
public class Duck : Animal, IAction
{
    public Duck(string name)
    {
        _name = name;
    }
    //重载抽象方法
    public override void Show()
    {
        Console.WriteLine(_name + " is showing for you.");
    }

    //重载抽象属性
    public override string Name
    {
        get { return _name;}
    }

    //实现接口方法
    public void Move()
    {
        Console.WriteLine("Duck also can swim.");
    }

}

public class Dog : Animal, IAction
{
    public Dog(string name)
    {
        _name = name;
    }

    public override void Show()
    {
        Console.WriteLine(_name + " is showing for you.");
    }

    public override string Name
    {
        get { return _name; }
    }

    public void Move()
    {
        Console.WriteLine(_name + " also can run.");
    }

}
 

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14060-1.html
网站维护教程更新时间:2012-03-30 05:25:28  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer