兼容性: 1. 子类对象可以直接赋值和初始化父类对象。 2. 父类对象指针可以直接指向子类对象。 3. 父类对象引用可以直接引用子类对象。 当使用父类指针或引用指向子类对象时: 1. 子类对象退化为父类对象 2. 只能访问父类中定义的成员。 3. 可以直接访问被子类覆盖的同名成员。 函数重写: 1. ...
分类:
其他好文 时间:
2019-05-11 12:12:57
阅读次数:
120
多态 问题引出: 如果子类定义了与父类中原型相同的函数会发生什么?(赋值兼容性原则遇上函数重写) 函数重写: 在子类中定义与父类中原型相同的函数,函数重写只发生在父类与子类之间。 父类中被重写的函数依然会继承给子类 默认情况下子类中重写的函数将隐藏父类中的函数 通过作用域分辨符::可以访问到父类中被 ...
分类:
编程语言 时间:
2019-05-11 09:13:49
阅读次数:
133
子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题。 参考 https://www.cnblogs.co ...
分类:
编程语言 时间:
2019-05-06 16:03:39
阅读次数:
182
1、override保留字表示当前函数重写了基类的虚函数。目的:1.在函数比较多的情况下可以提示读者某个函数重写了基类虚函数(表示这个虚函数是从基类继承,不是派生类自己定义的);2.强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。用法:在类的成员函数参数列表后面添加该关键字既可,被over ...
分类:
编程语言 时间:
2019-03-15 19:13:36
阅读次数:
225
3.函数重写(override)前提:必须有继承性原因:父类中的功能(函数),子类需要用,但是父类中函数的函数体内容和我现在要执行的逻辑还不相符那么可以将函数名保留(功能还是此功能),但是将函数体重构;注意:子类重写父类的函数,除了函数体以外的部分,直接复制父类的即可演示函数重写的使用以及格式: c ...
分类:
编程语言 时间:
2019-03-04 00:05:44
阅读次数:
220
总结一下java 中的两种排序工具: Arrays.sort() : 主要针对 数组类型排序,如果数组里面的元素是对象,要按对象属性排序的话,需要重写 Comparator() 函数,重写里面的 int compare()函数; Collections.sort(): 主要是针对集合排序,如:lis ...
分类:
编程语言 时间:
2019-03-02 01:08:31
阅读次数:
214
一、构造方法 在类中定义构造函数 带参数,构造函数 重写一般方法 略 重写构造方法 当子类调用父类的方法时,b类重写的构造函数没有name属性,会导致报错 定义两个类 a,b 调用a类的age1()方法 没问题 调用b类的name1()方法 没问题 但当调用b类的从a类继承的age1方法时 因为构造 ...
分类:
其他好文 时间:
2019-02-01 15:51:49
阅读次数:
132
来源于菜鸟教程 Kotlin接口与Java8类似,使用interface关键字定义接口。允许方法有默认实现: 实现接口 一个类或者对象可以实现一个或多个接口。 实例: 接口中的属性 接口中的属性只能是抽象的,不允许初始化值,接口不会保存属性值,实现接口时,必须重写属性。 函数重写 实现多个接口时,可 ...
分类:
其他好文 时间:
2018-12-25 13:58:54
阅读次数:
131
0.目录 1. "同名覆盖" 2. "赋值兼容" 3. "函数重写遇上赋值兼容" 4. "小结" 1.同名覆盖 子类中是否可以定义父类中的同名成员?如果可以,如何区分?如果不可以,为什么? 父子间的冲突: 子类可以定义父类中的同名成员 子类中的成员将隐藏父类中的同名成员 父类中的同名成员依然存在于子 ...
分类:
编程语言 时间:
2018-12-08 15:43:52
阅读次数:
268
函数的重写 前提:在具有继承关系的类中 作用:将父类中已有的函数在子类中进行重新的实现【声明部分一样的,实现部分不一样】 1.系统函数的重写 注意:并不是所有的函数都需要重写 __str__ __repr__ 代码如下: 2.自定义函数的重写 函数重写的时机:当父类中的函数的功能不满足子类的的需求时 ...
分类:
其他好文 时间:
2018-11-22 14:26:38
阅读次数:
199