Advertisement

总结一(持续更新)

阅读量:

1、在一个类当中,公有成员(public)是可以在类外进行访问的,私有成员(private)只能在类的内部访问
2、没有构造函数的时候编译器会提前构造函数的,出现以下三种情况(默认构造函数的几种现象)
①如果就是类有虚拟成员函数或者是虚拟继承父类(虚拟基类 )
②类的基类里面有构造函数(用户定义的构造函数或者是编译器提供的默认构造函数)
③类内所有非静态的对象数据成员,他们所属类中有构造函数
3、函数的重载、重写、覆盖定义
1)overload,将语义相近的几个函数用同一个名字表示,但是参数和返回值不同,这就是函数重载
特征:相同范围(同一个类中)、函数名字相同、参数不同、virtual关键字可有可无
2)override,派生类覆盖基类的虚函数,实现接口的重用
特征:不同范围(基类和派生类)、函数名字相同、参数相同、基类中必须有virtual关键字(必须是虚函数)
3)overwrite,派生类屏蔽了其同名的基类函数
特征:不同范围(基类和派生类)、函数名字相同、参数不同或者参数相同且无virtual关键字

区分在于:
(1)范围上的区分在于被重写的函数与被重载的函数位于不同的类中。
(2)参数上的区分在于被重写的函数与被重载的函数具有相同的参数列表。
(3)涉及virtual的关键点在于只有基类需要具有virtual修饰而无需为被继承类添加该修饰符。

隐匿与改写、再定义的区别主要体现在以下几个方面:
(1)在范围划分上存在差异时

  • 隐匿操作通常仅限于特定类别的方法
  • 再定义则可能覆盖更广泛的代码区域
    (2)在参数设置上:
  • 隐匿方法及其对应的方法可以在结构上保持一致
  • 但允许实现细节上的调整
  • 两者的名称必须完全一致
    特别地当参数设置不同时:
  • 不论基类中的方法是否声明为虚函式
  • 基层的方法都将被视为隐匿而非重新定义

请记住:无论是否继承这些规则始终有效!有three access specifiers: public, protected,和private它们将影响基类成员的可访问性

(1)基于公开继承:基类公开成员、保护性成员及私人成员在子类中的访问权限相应地变为:公开、保护性及私人
(2)基于保护性继承:基类公开成员、保护性成员及私人成员在子类中的访问权限相应地变为:保护性、保护性及私人
(3)基于隐私继承:基类公开成员、保护性成员及私人成员在子类中的访问权限相应地变为:隐私、隐私及隐私

但不管是哪种继承方式,在这两点上都未发生变化:
(1)私有成员仅限于本类内部成员以及与之友元协作的外部成员访问;
(2)protected成员允许多代类对象进行访问。

请问什么是迟绑定技术?迟绑定技术是一种基于Java面向对象编程特点的技术机制,在程序运行时根据引用对象的实际类型决定是否进行方法调用。

在这里插入图片描述

6.多态使用方法
(1)多态性
一个事物的多种形态。
(2)什么是多态性
对象的多态性:父类的引用指向子类的对象或子类的对象赋给父类的引用。
(3)多态的使用:虚拟方法调用
有了对象的多态以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。
总结:编译看左边,运行看右边。
(4)多态性的前提:(1)类的继承关系;(2)方法的重写。
(5)对象的多态性,只适用于方法,不适用于属性。
方法的编译看左边,运行看右边;属性的编译和运行都看左边。
扩展:虚拟方法
子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的。

全部评论 (0)

还没有任何评论哟~