传承类实例,一步一步学c

作者:计算机知识

8.继承
大家大概会在有的类中,写一些双重的成员,我们能够将这么些再一次的分子,单独的卷入到叁个类中,作为那么些类的父类。

 public class D
    {

        public virtual void Run(string name)
        {
            Console.WriteLine(name   ",good");
        }

        public void play(D d)
        {
            d.Run("mike");
            Run("jack");
        }
    }

    public class D1 : D
    {

        public override void Run(string name)
        {
            Console.WriteLine("I'm "   name   ",good");
        }
    }

  继承

在存活类(基类、父类)上建设构造新类(派生类、子类)的管理进度称为传承。派生类能自动获取基类的除了构造函数和析构函数以外的具有成员,能够在派生类中增多新的品质和办法增添其职能。

玖.子类承接了父类,那么子类从父类哪里承袭了何等?

调用

壹·再三再四的花色

承接的性状:

子类传承了父类,那么子类从父类哪里承继了何等?

            D d = new D();
            D1 d1 = new D1();

            d1.play(d);

在面向对象的编制程序中,有二种绝不相同的后续类型,实现一连和接口承继。

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

传承类实例,一步一步学c。10.主题素材:子类有未有继续父类的构造函数?
答:子类未有继承父类的构造函数,不过,子类会私下认可调用父类无参数的构造函数,成立父类对象,让子类能够行使父类中的成员。
据此,如若在父类中另行写一个有参数的构造函数之后,那3个私下认可无参数的构造函数就被干掉了,子类就调用不了,所以子类就能够报错。
消除办法:
一)在父类中再次写多少个无参数的构造函数。
贰)在子类中显示的调用父类的构造函数,使用首要字:base()

结果

贯彻延续:表示3个档案的次序派生于1个基类型,它兼具该基类型的享有成员字段和函数。

单一性:只好从二个基类中继承,无法同一时候继续多少个基类承袭中的访问修饰符base和this关键字基类的构造函数和析构函数不可能被接续的。但足以采用首要字base来延续基类的构造函数。

1一。承袭的风味
1)承继的单根性:四个子类只能有2个父类
贰)承袭的传递性。

图片 1

接口承袭:表示2个连串只持续了函数的签字,未有传承任何完毕代码。

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

12.在c#中负有的类都一向或直接的继续以object类。

分析

布局和类

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

13.new关键字
一)创建对象
2)隐藏从父类这里承接过来的同名成员,隐藏的后果正是子类调用不到父类的积极分子。
子类对象尽量制止和父类对象重名,防止父类同名对象被隐形。

父类D的调用方法

结构总是派生自System.ValueType,它们还足以派生自放四多个接口。

 

 

d.Run("mike");
Run("jack");

类总是派生自用户选取的另二个类,它们能够派生自放肆五个接口。

有哪些界别啊?求解释。为什么 Run("jack")的调用方法会被重写。

兑现延续

 

扬言派生自另三个类的三个类,语法如下:

图片 2

假定在概念中并未有一些名基类,编译器就能够默以为System.object是基类,所以上边包车型地铁两段代码结果一律:

图片 3

虚方法

把3个基类函数注解为virtual,就足以在其他派生类中重写该函数:

图片 4

本文由bwin必赢发布,转载请注明来源

关键词: .net继承机制 56net