您的位置:澳门新葡8455最新网站 > 编程教学 > 继承类实例

继承类实例

发布时间:2019-12-09 15:19编辑:编程教学浏览(106)

    在现存类(基类、父类卡塔尔(قطر‎上建构新类(派生类、子类卡塔尔国的处理进程称为世襲。派生类能自动获取基类的除了布局函数和析构函数以外的具有成员,能够在派生类中增加新的天性和办法扩张其成效。

    一、封装:
      封装是贯彻面向对象程序设计的率先步,封装正是将数据或函数等集中在二个个的单元中(大家称之为类)。棉被服装进的对象平日被堪当抽象数据类型。

    后续的特点:

    包裹的含义:
      封装的意义在于保证依然防守代码(数据)被我们不识不知中损坏。在面向对象程序设计中数量被视作是贰个基本的要素何况和使用它的函数结合的不粗大致,进而维护它不被别的的函数意外的校正。

    可传递性:C从B派生,B从A派生,那么C不止世袭B也世袭A。

    包裹提供了贰个有效的路径来保卫安全数量不被意外的损坏。相比较我们将数据(用域来落到实处)在先后中定义为公用的(public)大家将它们(田野s卡塔尔定义为私有的(privat)在相当多上边会越来越好。私有的数量能够用二种情势来直接的主宰。第生机勃勃种方法,大家使用守旧的存、取措施。第三种办法大家用属性(property)。

    单风流罗曼蒂克性:只可以从多少个基类中接二连三,不可能并且继续多个基类世袭中的访问修饰符base和this关键字基类的构造函数和析构函数不能够被接续的。但能够选用重要字base来持续基类的结构函数。

    接受质量不只能够调整存取数据的合法性,同一时间也提供了“读写”、“只读”、“只写”灵活的操作方法。

    C#中的base关键字表示基类,使用base关键字能够调用基类的结构函数、属性和格局。

    走访修饰符:

    namespace InheritanceApplication
    {
       class Shape 
       {
          public void setWidth(int w)
          {
             width = w;
          }
          public void setHeight(int h)
          {
             height = h;
          }
          protected int width;
          protected int height;
       }
    
       // 派生类
       class Rectangle: Shape
       {
          public int getArea()
          { 
             return (width * height); 
          }
       }
    
       class RectangleTester
       {
          static void Main(string[] args)
          {
             Rectangle Rect = new Rectangle();
    
             Rect.setWidth(5);
             Rect.setHeight(7);
    
             // 打印对象的面积
             Console.WriteLine("总面积: {0}",  Rect.getArea());
             Console.ReadKey();
          }
       }
    }
    
    Private:只有类本身能存取.
    Protected:类和派生类可以存取.
    Internal:只有同一个项目中的类可以存取.
    Protected Internal:是Protected和Internal的结合. 
    Public:完全存取.
    

     

    二、世襲:世袭首要达成重用代码,节省费用时间。
    1、C#中的世襲切合下列准绳:
    接轨是可传递的。假如C从B中派生,B又从A中派生,那么C不仅仅一而再三番两次了B中声称的积极分子,相通也三番五次了A中的成员。Object类作为全部类的基类。
    派生类应当是对基类的扩张。派生类能够增添新的积极分子,但不能够除去已经延续的成员的概念。
    布局函数和析构函数不可能被一而再。除此而外的别的成员,无论对它们定义了什么的拜望形式,都能被持续。基类中成员的访谈格局只好决定派生类能不可能访谈它们。
    派生类纵然定义了与世袭而来的分子同名的新成员,就能够覆盖已持续的积极分子。但那并不因为那派生类删除了这一个成员,只是不能够再拜望这个分子。
    类能够定义虚文法、虚属性以致虚索引提醒器,它的派生类能够重载那些分子,进而达成类能够展现出多态性。
    2、new关键字
       固然父类中声称了多个未有friend修饰的protected或public方法,子类中也宣称了同名的不二等秘书诀。则用new能够掩瞒父类中的方法。(不建议采纳)
    3、base关键字
       base 关键字用于从派生类中会见基类的积极分子:

    • 调用基类莺时被别的办法重写的措施。
    • 点名创造派生类实例时应调用的基类构造函数。

    三、多态
      1、多态:同生机勃勃操作成效于不一样的目的,能够有例外的解释,爆发分歧的试行结果。在运维时,能够经过指向基类的指针,来调用实现派生类中的方法。
      编写翻译时的多态性:
      编写翻译时的多态性是经过重载来促成的。对于非虚的成员来讲,系统在编写翻译时,依照传递的参数、重临的项目等消息决定达成何种操作。
      运转时的多态性:
      运维时的多态性就是指直到系统运作时,才根据实际意况调整达成何种操作。C#中,运维时的多态性通过虚成员完毕。
      编写翻译时的多态性为大家提供了运营速度快的特性,而运作时的多态性则带来了可观灵活和架空的风味。
      2、完毕多态:
    接口多态性。
    接二连三多态性。
    通过抽象类达成的多态性。
      3、override关键字:
       重写父类中的virtual修饰的方法,完成多态。

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:继承类实例

    关键词:

上一篇:没有了

下一篇:第一篇随笔,但你发现没