继承(6)
大家好,今天我们来继续学习继承的内容,了解一下this和super两者的一些特性和区别。话不多说,来看。
1.7 super 和 this
super和 this都可以在成员方法中用来访问:成员变量和调用其他的成员函数,都可以作为构造方法的第一条语句,那他们之间有什么区别呢?
[相同点]
1.都是Java中的关键字
2.只能在类的非静态方法中使用,用来访问非静态方法和字段.
1.在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在.
[不同点]
1.this是当前对象的引用,当前对象即调用实例方法的对象, super相当于是子类对象中从父类继承下来部分成员的引用.
2、在非静态成员方法中,this用来访问本类方法和属性,super用来访问成父类继承下来的方法和属性
3、在构进方法中:this(...)用于调用类构造方法,super(...)用于调用父类构造方法,两种调用不能同时在构造方法中出现.
4、构造方法中一定会存在super(...)调用,用户没有写编译器也会增加,但是this(...)用户不写则没有.
还记得之前讲过的代码块吗?我们简单回顾一下几个重要的代码块:实例代码块和静态代码块,在没有继承关系时的执行顺序。
执行顺序:
1.静态代码块先执行,并且只执行一次,在类加载阶段执行.
2.当有对象创建时,才会执行实例代码块,实例代码块执行(包括实例对象)完成后,最后构造方法执行.
那么今天分享就到这里,谢谢大家!!!