欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

继承中的关键字

程序员文章站 2024-01-22 08:45:10
base关键字的使用;protected关键字的使用;子类与父类的关系;子类如何调用父类构造方法? ......

父类和子类概述

  1.概念解释

    ①.子类继承父类,父类派生子类。

    ②.子类又叫派生类,父类又叫基类(超类)。

    ③.子类继承父类成员,也可以有自己独立的成员。

  2.继承的条件

    继承需要符合的关系:is-a 的关系:dog is an animal

 

继承中的关键字

  1.this关键字

    可以使用this关键字访问父类成员

  2.base关键字

    关键字base的作用:

      ①.调用父类的构造函数。

      ②.调用父类的属性和方法。

  3.protected关键字

    父类成员:

      ①.public修饰:所有类都可以访问

      ②.private修饰:子类无法访问

      ③.protected修饰:允许子类访问,而不允许其他非子类访问 

 

子类调用父类构造函数总结   

  1.隐式调用

    如果其他子类的构造函数没有使用base知名调用父类哪个构造函数时,子类会默认调用父类的无参构造函数:base(),这时父类要提供无参的构造函数。

  2.显示调用

    如果父类没有无参数的构造函数,子类构造函数必须指明调用父类的哪个构造函数。

  3.示例 

继承中的关键字
 1 class animal
 2     {
 3         public string name { get; set; }//名字
 4         public string color { get; set; }//颜色
 5         public string kind { get; set; }//种类
 6         public string favorite { get; set; }//喜好
 7 
 8         public animal() { }
 9         public animal(string name, string color, string kind)
10         {
11             this.name = name; 
12             this.color = color;
13             this.kind = kind;
14         }
15         //自我介绍
16         public void introduce()
17         {
18             string info = string.format("我是漂亮的{0},我的名字叫{1},身穿{2}的衣服,我爱吃{3}!", this.kind, name, color, favorite);
19             console.writeline(info);
20         }
21     }
view code
继承中的关键字
 1  class dog:animal//继承animal类
 2     {
 3         public dog(string name, string color, string kind)
 4         {
 5             this.name = name;//使用this关键字访问父类成员
 6             this.color = color;
 7             this.kind = kind;
 8         }
 9 
10         public dog() { }//隐式调用:默认调用父类的无参构造函数,若此时父类并没有无参构造函数,则出错。
11 
12         public dog(string name, string color, string kind, string favorite) : base(name, color, kind)
13         {//显示调用
14             this.favorite = favorite;
15         }
16         public void race()
17         {
18             base.introduce();//使用base关键字调用父类方法
19             console.writeline("下面给大家表演赛跑,请大家鼓掌!");
20         }
21     }
view code

 

继承的特性

  1.继承的传递性

    传递机制 a->b;b->c c具有a的特性。

  2.继承的单根据性

    一个类只能有一个父类(一个类只能有一个基类)。