zoukankan      html  css  js  c++  java
  • 必须知道的.net(继承)

    1.继承定义:就是面向对象中类与类之间的一种关系。通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次。

    2.CLR支持实现单继承和接口多继承

    3.继承特性

    • 继承是可以传递的,子类是对父类的扩展,必须继承父类方法,同时可以添加新方法。
    • 子类可以调用父类方法和字段,而父类不能调用子类方法和字段。
    • 虚方法如何实现覆写操作,使得父类指针可以指向子类对象成员。
    • 子类不光继承父类的公有成员,同时继承父类的私有成员,只是在子类中不被访问。
    • new关键字在虚方法继承中的阻断作用。

    4.接口继承

    • 抽象类适合于有族层概念的类间关系,而接口最适合为不同的类提供通用功能
    • 接口注重于CAN-DO关系类型,抽象类偏重于IS-A式的关系
    • 接口多定义对象的行为,抽象类多定义对象的属性。
    • 如果预计会出项版本问题,可以创建“抽象类”
    • 因为值类型是密封的,所以只能实现接口,而不能继承类。

    5.解决继承耦合度高的问题——Adapter模式

       对象的Adapter模式,通过聚合而非继承的方式事项对原有系统的扩展,松散耦合,较少的新类型

    实现细节:

    interface ITweetable{void ToTweet();}

    public class BirdAdapter:ITweetable

    {

      private Bird _bird;

      public BirdAdapter(Bird bird){_bird=bird;}

      public void ShowType(){_bird.showType();}

      ...部分省略...

    public void ToTweet(){//为不同的子类实现不同的tweet行为}

    }

    客户端调用为:

    public class Test

    {

      public static void Main()

         {

               BirdAdapter ba=new BirdAdapter(new Chicken);

               ba.ShowType();

               ba.ToTweet();

         }

    }

  • 相关阅读:
    什么是 HTTPS
    首页飘雪的效果
    load data导入数据之csv的用法
    phpcms v9 配置sphinx全文索引教程
    js的一些技巧总结
    MySQL 清除表空间碎片
    使用的前台开发在线工具
    (phpQuery)对网站产品信息采集代码的优化
    永远不要打探别人工资
    git 显示多个url地址推送
  • 原文地址:https://www.cnblogs.com/luyujie/p/3149803.html
Copyright © 2011-2022 走看看