笔记——Java面向对象之继承
来源:互联网 发布:空姐老了知乎 编辑:程序博客网 时间:2024/05/23 16:45
1.继承的特点
java只支持单继承,不支持多继承
java支持多层继承
2.this和super关键字
this关键字代表对象的引用,代表哪个类对象取决于哪个类调用,一般在一个类里直接调用this指本类引用。
super关键字代表当前子类对父类对象的引用。
this(参数),调用本类其他相应参数的构造函数,写在构造函数第一行。
super(参数),调用父类相应参数的构造函数,写在构造函数第一行,每个构造函数都会隐式调用super()。
this(参数)和super(参数)不能同时出现在一个构造方法内,因为this会调用其他构造,其他构造会调用默认的super,编译器不通过。
this(参数)和super(参数)不能在静态static环境中使用。
this是一个本类对象的引用,super是java关键字。
以上子类调用父类的过程要注意修饰符,子类无法调用父类private的方法与属性。
3.方法的重写(覆盖)Override
子类重写父类方法时,方法名与参数列表以及返回值必须完全相同。
子类重写父类方法时,在修改方法访问修饰符的时候,只能有小范围扩大到大范围。也就是说,重写方法时,不能降低修饰符权限范围。
子类重写父类方法时,如修改了返回值类型,返回值的类型必须是父类中此方法返回值的子类。
子类重写父类方法并修改返回值,只可以在J2SE5.0以上的版本中操作。
子类重写父类方法时,在方法内所抛出的异常子类不能比父类方法内抛出更多的异常,也就是子类方法所抛出的异常必须是父类方法异常或其异常子类,或者不抛异常。
子类重写父类方法时,父类的方法不可被static修饰,不可被final修饰。
访问修饰符为private的方法无法被重写。
4.final关键字
被final关键字修饰的类无法被继承。
子类无法重写父类中final关键字修饰的方法。
final修饰的类内属性必须赋值且无法修改。
final修饰的局部变量只能赋值一次且无法修改。
final修饰的方法参数,是在方法调用传参时初始化的。
5.子类对象初始化过程
在初始化一个类的对象时,如果对象有父类,也就是该类有继承关系时,对象在初始化时遵循以下规则:
先初始化父类,后初始化子类。
先初始化静态变量和代码块,后初始化构造函数。
父类初始化完成后再初始化子类。
从上述规则可以得出对象创建的基本流程:
1.父类static变量初始化
2.父类static代码块初始化
3.子类static变量初始化
4.子类static代码块初始化
5.父类成员变量初始化
6.父类构造代码块初始化
7.父类构造方法初始化
8.子类成员变量初始化
9.子类构造代码块初始化
10.子类构造方法初始化
构造代码块:直接在类中定义并且没有加static关键字的代码块,构造代码块在对象创建时被调用,也就是说每次new的时候都会调用。多用于处理子类与父类共有特征处理。
静态代码块:在类中以static修饰的代码块。会优先于构造代码块初始化,但只初始化一次。多用作一次性初始化操作,在安卓开发时加载so库,或者数据库db文件等。
0 0
- 黑马程序员笔记——Java面向对象之继承
- 笔记——Java面向对象之继承
- java自学笔记之面向对象继承
- java笔记之面向对象,构造,继承
- java学习笔记《java面向对象编程》——继承
- 黑马程序员——面向对象之继承学习笔记
- 黑马程序员学习笔记四——Java 面向对象 特点之 继承
- 黑马程序员——Java面向对象之继承与多态笔记
- java笔记——初识面向对象04继承
- Java面向对象-----继承笔记
- java之面向对象——继承、封装、多态
- Java学习——面向对象之继承
- JAVA-面向对象之继承
- Java面向对象之继承
- java面向对象之继承
- Java面向对象之继承
- Java面向对象之继承
- Java面向对象之继承
- 非常量引用的初始值必须是左值
- Vue 2.0的快速入门(基础)
- startActivity跳转没有反应java binder FAILED BINDER TRANSACTION
- 【Sublime Text】使用Sublime Text 3写前端代码
- 从WLAN的安全威胁 西电捷通解析电信诈骗技术症结
- 笔记——Java面向对象之继承
- 数组数据转换成json形式,用于jqgrid初始化表格
- 很多个问题
- Zookeeper常用命令
- android httpClient 支持HTTPS的2种处理方式
- C语言的强制转换对PWM输出会产生莫名的影响
- 记录
- 多媒体(音乐播放器+视频)
- 使用ul,添加新闻信息列表