类的继承

类的继承

今天讲到了父类与子类的关系、虚继承(virtual/override)、子类的方法重写(new)、子类中基类(父类)的构造函数(base)等。

父类与子类的关系:

父类中权限是public(公有权限)的字段、方法都可以在子类中继承,也就是说如果类b继承与类a,那么类b中有类a中权限为public(公有权限)的除构造函数、析构函数以外的所以字段和方法,并可以直接使用。

如果在父类中不写public(公有权限)的字段,默认为private(私有权限),这种权限在子类中不可以直接使用,要通过父类中的public(公有权限)的方法来使用。

还有一种权限是protect(保护权限),这种权限可以让父类中的字段或者方法在子类中用,但不可以离开类体且不在子类中用。

虚继承:

class Fulei

{

       public virtual void obj()

       {

              Console.Writeline("这是父类。");

       }

}

class Zilei:Fulei

{

       public override void obj()

       {

              Console.Writeline("这是子类。");

       }

}

(例1-1)

这样在父类在用子类初始化的时候,父类的obj讲输出“这是子类。”

子类的方法重写:

class Fulei

{

       public void obj()

       {

               Console.Writeline("这是父类。");

       }

}

class Zilei:Fulei

{

       new public void obj()

       {

              Console.Writeline("这是子类。");

       }

}

(例1-2)

当在Zilei a=new Zilei();中的a.obj()里,输出的将是“这是子类。”,而在Fulei b=new Fulei();中的b.obj()里,输出的则是“这是父类。”。当在子类的方法前不写new的时候,系统一般会自动添加一个new。

子类中基类(父类)的构造函数:

如果在父类中有构造函数如下:

public Fulei(string name)

{

       this.name=name;

}

那么在子类中的构造函数就应该如下:

public Zilei(string name):base(name)

{

}

子类中的构造函数体即便为空,也要写,因为要调用父类的构造函数并传参数给父类的构造函数,即:base(name)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值