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();

         }

    }

  • 相关阅读:
    Api记录
    选择排序、冒泡排序、二分查找(折半查找)
    inline关键字
    c++,虚函数,单继承,多继承虚表剖析
    关于类模版迭代器提出时的错误
    关于类模版迭代器提出时的错误2
    菱形继承,多继承,虚继承、虚表的内存结构全面剖析(逆向分析基础)
    VC++错误调试
    引用计数
    选择
  • 原文地址:https://www.cnblogs.com/luyujie/p/3149803.html
Copyright © 2011-2022 走看看