• .NET重思(二)接口和抽象类的取舍


    不得不说,接口和抽象类好像啊~两者都不可以实例化,并且未实现的部分都是由派生类实现的。

    他们主要有这么个区别:

    (1)抽象类的派生类可以是派生类,换言之,抽象成员在派生类中不一定完全实现,而接口要求其派生类或者结构必须完全实现其成员。

    (2)类只能继承一个抽象类,但是可以实现多个接口。

    (3)类中可以包含字段什么的,但是接口中只包含未实现的成员,不包含字段。

    (4)抽象类只能派生类,但是接口可以派生类和结构。

    就我自己理解,派生类就是一组相似的类放在一起,把他们共同的成员抽出来放在基类里,以实现代码复用。有点像WinRT中的资源(Resource)或者网页中的CSS一类的。而接口就是功能的集合,我把一些类的功能暴露给你,你使用就好,不用关心他到底怎么实现的,放在一起,简洁好看。具体的,还得看。。。经验

    Interface的示例上一篇写过了,这就写个抽象类的示例吧~

    class Program
        {
            static void Main(string[] args)
            {
                Mengnan a = new Mengnan();
                Console.WriteLine("Mengnan实例继承的msg字段是:{0}",a.msg);
                Console.WriteLine("Mengnan实例实现的方法是:",a.getname());
                Console.WriteLine("Mengnan实例实现的属性是:", a.isMale);
            }
        }
    
        abstract class Person
        {
            internal string msg = "这是Person类";
            abstract public string getname();
            abstract public bool isMale
            {
                get;
            }
        }
    
        class Mengnan : Person
        {
            public override bool isMale
            {
                get
                {
                    return true;
                }
            }
    
            public override string getname()
            {
                return "我是msp的梦楠姐姐";
            }
        }
  • 相关阅读:
    expdp和impdp用法详解
    Shiro-JWT SpringBoot前后端分离权限认证的一种思路
    Maven Helper 插件-解决依赖冲突
    maven打包之resource配置
    sparkstreaming direct方式读取kafka(0.10版本)数据, 并手动维护offset
    java向kafka发送消息
    idea maven整合log4j
    java设计模式: 工厂方法模式
    异地购房使用武汉公几斤商dai转公几斤dai款
    java设计模式: 单例设计模式
  • 原文地址:https://www.cnblogs.com/mengnan/p/4824169.html
Copyright © 2020-2023  润新知