C# 面向对象之继承

什么是继承

复用代码复用概念的一种技术。【代码复用的一种方式】

什么需要继承

为了保留原有的功能;通过继承可以复用;不用每次都从头开始为了能够对类进行层次的管理  狗  猫 动物,方便管理多个类【层次,树】

什么情况下用继承

    只要用C#写代码,就在使用【无意识】【有意识:刻意用 父类】没有明确指定父类,默认父类是object;  Object是任何类的直接或者间接父类!

继承的语法

写法:class A: B 表示A类继承B类,

A类称为子类(派生类),

B类称为父类(,超类)

继承中的构造方法

  1. 构造方法不会继承给子类,
  2. 但是在创建子类对象时,自动调用父类的构造方法,且父类构造方法先执行,子类构造方法后执行.
  3. 什么时候调用构造方法:new类时=创建对象的时候    new【1分配内存空间2调用构造方法】
  4. 当子类创建对象时,默认调用父类的构造方法。

如果程序员没有明确的写构造方法,编译器或自动生成一个【无参构造方法

            如果程序员明确的写构造方法,比如写了有参构造编译器就不给生成无参构造了。

如果父类没有无参构造方法,则报编译错误,

解决方法有两个:

 1》.为父类添加无参构造方法,

 2》.如果不想在父类中写无参构造方法,则在子类的构造方法中用base关键字指明要调用父类的哪一个有参构造方法。

 

继承的特点

1、父类中所定义(除私有成员外)都继承给子类【子类拥有父类中所有非私有成员】

2、构造方法不继承给子类【公共,私有】

结论因为继承,调用父类中的方法,有三种调用法:声明父 New父,声明子 New子,声明父 New子

继承缺点

 耦合度高:父类的改变直接影响到所有的子类,

 而不需要通知子类

 建议:继承层次不要太深,层即可尽量选择抽象类来继承

 

发布了122 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40229737/article/details/103990698
今日推荐