首页 > 编程 > Java > 正文

笔记——Java面向对象之继承

2019-11-08 01:49:38
字体:
来源:转载
供稿:网友

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文件等。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表