super与this的用法

1 super和this都是调用其他的构造方法

super放在构造方法的第一条语句,调用父类的某种构造方法,如果没有super语句,会默认调用父类中无参的构造方法,如果父类构造方法指明而且都有参数,子类中会报错,this调用本类中其他某个构造方法,也要放在构造方法第一行

2  父类和子类中有相同名字的成员变量时,父类的会被覆盖,如果想使用父类的成员,应该使用super.方法名或者super.对象名

3 程序中有相同名字的变量时,this可以用来指代当前对象名  

如  private String name;

public void setName(String name){

this.name=name;

}

4 super和this不能在同一个构造方法中

5 super和this都是指代对象,不能在static环境中使用

6 this代表指向本对象的指针,而super是一个Java关键字
————————————————

super的用法

准备知识:关键字this

<1.构造函数传递,this(a,b)表示调用另外一个构造函数;

<2. 在一个类的非static成员内部使用,表示当前这个对象;

super和this类似

<1.调用父类的构造函数;

<2.在一个类中的非static成员内部使用

<3. 调用父类的protected函数
————————————————

在python中引入super()的目的是保证相同的基类只初始化一次(注意:

1super ()机制是用来解决多重继承的,对于直接调用父类名是没有问题的,但在之后根据前人的经验就是:要么都用类名调用,要么就全部用super(),不要混合的用,由此为人做事还是要专一的嘛O(∩_∩)O~

2 super()继承只能用于新式类,用于经典类时就会报错。
新式类:必须有继承的类,如果无继承的,则继承object
经典类:没有父类,如果此时调用super就会出现错误:『super() argument 1 must be type, not classobj)

参考
https://blog.csdn.net/u011467044/article/details/52205961

猜你喜欢

转载自www.cnblogs.com/klb561/p/11366978.html