第七周学习总结

 这周我们学习了多态,什么是多态呢?多态按字面意思就是“多种状态”,在面向对象语言中多态就是接口多种不同的实现方式。那多态的优点呢?就是消除类型之间的耦合关系。

多态存在的三个条件:

  1. 父类引用指向子类对象——使用时“动态绑定”。
  2. 继承——多态以继承为基础。
  3. 重写——按照契约形成另一种形态(特殊性)。

上面提到了一个概念“动态绑定“:把派生类的对象地址赋给基类的引用变量。(这是老师上课补充的)

后面学到了base关键字,通俗的讲base关键字就是使父类的方法在方法中重写。在创建子类实例时,可以用base调用父类的构造函数,使用base只能访问父类的构造函数、实例方法或实例属性,而不能访问基类的静态方法。

提到base就不得不提this了,简单来说this关键字是本类的引用,而base关键字是基类的引用。那么给大家分享一个问题:是否可以在静态方法中使用base跟this关键字?

答案:不可以,因为base和this访问的都是类的实例,也就是对象,而静态成员只能由类名来访问,不能由对象来访问。

还有一个问题是:base 可以访问基类的所以成员吗?

答案:不可以,base常用于在派生类对象初始化时和基类进行通信。base可以访问基类的公有成员和受保护成员,私有成员是不可访问的。

最后补充一下为什么要使用多态这个特性:主要是可以用基类的名义来调用派生类中的同名方法,即接口重用。

上面给大家补充的一部分是老师在课堂上讲的,一部分是在网上找的资料比较零碎,欢迎大家补充。

原文地址:https://www.cnblogs.com/wangli155167/p/10707524.html