基础知识总结:关于继承
来源:互联网 发布:宇宙神运载火箭 知乎 编辑:程序博客网 时间:2024/06/08 18:25
如果要在子类中调用父类的方法可以用super关键字来调用,与super对应的this,它们之间并不是对应关系,首先super是个关键字,通过这个关键字表示调用的是父类的属性或者方法,而this是表示一个真正的对象,this可以当做参数进行传递,可当做返回值。所以千万不要搞混。
静态绑定和动态绑定的区别:
Son extends Father 子类对象son ,把子类对象赋值给父类 (Father)son,再用son调用父类的静态成员或静态方法,这叫做静态绑定。如果son不赋值给Father,而son还是自己的Son类的对象,调用与父类同名的静态成员或静态方法,调用的就是子类的静态成员和静态方法,所以当这个对象是父类的对象调用的就是父类的静态方法,这个对象是子类的对象,调用子类的静态方法。一般不要这样用,静态变量应该用类名直接调用。
动态绑定只要只重载和重写,子类对象如何决定调用的是父类还是自己的变量和方法,是根据参数类型进行比对,选择合适的方法进行调用调用。
一个父类的变量,能不能转换为一个子类的变量,取决于这个父类变量的动态类型(即引用的对象类型)是不是这个子类或这个子类的子类。
子类方法不能降低父类方法的可见性,是指如果父类是protected,子类可以是protected,也可以是public,指的是子类可以升级父类可见性但不能降低。
如果父类得方法不希望被子类继承,可以用final关键字修饰。
子类对象实例化的过程是这样的:
第一步,类初始化,父类静态代码块
第二步,类初始化,子类静态代码块
第三步,实例初始化,父类实例代码块
第四部,实例初始化,子类示例代码块
第一二步在内存村中分配类的信息,给类种的变量赋默认值,然后再执行初始化对象的内存分配。
内存分配的表现形式:
内存分为栈和堆,栈中存放函数的局部变量的地址该地址指向堆中该对象的真正存储区域,堆中存放对象信息。还有个方法区专门放类的信息。
- 基础知识总结:关于继承
- CPP基础知识—关于菱形继承
- Java基础知识总结之类的继承
- Javascript基础知识盲点总结——继承
- Javascript基础知识盲点总结——继承
- 关于Voip的基础知识总结
- 关于一些基础知识的总结
- 关于COM的基础知识总结
- 关于java的基础知识总结
- 关于css3动画基础知识总结
- 关于继承的一些总结
- C++基础知识: 公有继承,保护继承,私有继承的总结,私有继承的用意何在
- 关于继承和覆盖(Override)的一些基础知识
- 关于继承和覆盖(Override)的一些基础知识
- oc 基础知识总结一:类目和继承的区别
- 关于博弈论基础知识的一些总结
- 关于 android 基础知识的总结 之 定时器
- 关于博弈论基础知识的一些总结
- Vim编辑器
- 计算机网络基础知识总结【转载】
- C# 8.0的三个令人兴奋的新特性
- 阿里云 Tomcat https 免费DV ssl证书安装(记录备忘)
- ActiveMQ
- 基础知识总结:关于继承
- Retrofit上传头像
- JS—Decorator(装饰者)模式
- clientX,pageX,screenX,offsetX,layerX,x的那些事
- 自定义VIew Demo (ViewGroup)
- Uncaught TypeError: UE.getEditor is not a function
- 分布式 RPC架构简单理解
- Redis 服务器
- ABP官方文档(三)【模块系统】