1.继承的特点:

  继承顺序的不可逆性:继承是从上往下依此继承,而不能逆序进行。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  继承的延续性:在继承顺序中,下一级具备上一级的属性和特征。

2.继承的好处:

  代码复用,避免重复。

  一处更新,处处更新。

3.继承的步骤和使用要点:

  抽取公共部分,放到一个特定的类中(父类)。

  其他类(子类)只需要继承父类,即可拥有父类特征(属性和方法)。

  根据子类的需要添加属于自己的特征和方法。

4.继承的实现(和接口的实现形式类似)

  在子类后面使用冒号“:”继承父类,如  class Dog : Animal

5.概念解释

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

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

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

6.继承的条件

  继承需要符合的关系:is-a 的关系  Cat is an Animal。

7.继承中的构造函数

  this:可以使用this关键字访问父类成员(在构造函数中)。

  base:调用父类的构造函数、调用父类的属性和方法。

C#面向对象五(继承、抽象类和抽象方法、多态) 随笔 第1张
1 public Dog(string name,string color,string kind,string favorite):base(name,color,kind)
2 {
3     this.Favorite=favorite;  
4 }
继承中使用base关键字

 8.protected关键字

  protected访问修饰符允许子类访问,而不允许其他非子类访问。

 

修饰符 类内部 子类 其他类
public 可以 可以 可以
private 可以 不可以 不可以
protected 可以 可以 不可以

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

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

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

10.继承的特性

  继承的传递性:传递机制  A——>B   B——>C    C具有A的特性

  继承的单根性:一个类只能有一个父类

  例如机器视觉技术与软件学科又属于光学学科,能否同时继承两种人?  答案:不能

11.抽象类和抽象方法 abstract override

  抽象方法就是在父类中未实现的方法,在子类中必须实现父类中的所有的抽象方法。

  一个抽象类内可以没有抽象方法。

  一个抽象方法所在的类必须是抽象类。

C#面向对象五(继承、抽象类和抽象方法、多态) 随笔 第3张
 1 abstract class Animal
 2 {
 3    public string Name {get;set;}
 4    public Animal(){}
 5    //用abstract修饰抽象方法
 6    public abstract void Have();
 7 }
 8 
 9 class Dog:Animal
10 {
11    //用override重写父类未实现的方法
12    public override void Have()
13    {
14        Console.WriteLine("狗吃骨头");
15    }
16 }
17 
18 class Cat:Anima
19 {
20     public override void Have()
21     {
22         Console.WriteLine("猫吃鱼");
23     }
24 }    
抽象方法和重写

12.抽象类的概念与使用要点

  12.1使用关键字abstract修饰的类,称为抽象类

  12.2抽象类只是用来列举一个类所具有的行为,不能单独通过创建对象来使用,也就是说抽样类不能被new

  12.3抽象类中可以有抽象方法,也可以没有任何抽象方法

  12.4抽象类不能是静态的(static)或密封的(sealed),密封类不能被继承

13.抽象方法的概念与使用要点

  13.1在抽象类中使用abstract修饰的方法,沉稳给抽象方法

  13.2抽象方法必须在抽象类中定义,不能在普通类中使用

  13.3抽象方法只是一个方法的声明,不能有任何方法体

  13.4抽象方法仅仅是表示一个应该具有的行为,具体实现由其子类实现

  13.5抽象方法在子类中被实现(重写)必须使用关键字override

  13.6子类必须重写父类的所有抽象方法,除非子类本身也是抽象类

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄