java—this与super,重载与重写
this用法:
this代表对本类对象的引用, this.成员变量 、 this.成员方法() 、本类有参构造 this(【参数】) 代表调用本类内容;一般情况下使用时可省略;
在如下两种情况下不可省略:
①出现在方法体(成员方法、构造方法)中时,有同名的局部变量,用this来区分属于类的成员变量和方法体中的局部变量;
②当在代码块中(静态代码块、构造代码块)需要调用成员变量或成员方法时,必须用this对象来调用;
super用法:
super代表对父类对象的引用,用于区分本类变量和父类变量;
相同点:
this();或suepr();存在于构造方法中时,必须在第一句,因此**this();和super();**两者不能同时出现在构造方法中。(程序一般会在子类的构造方法中隐藏一句super(),以此调用父类的无参构造方法,需要注意的是,当代码显示提供了有参构造方法时,隐藏的无参构造便失效了,因此父类被继承之后必须具有有效的无参构造方法)
2.重载与重写
重载:
存在只涉及本类,目的是为了程序的灵活性,也是一个类中多态性的一种表现;多个方法具有相同的名字。
重载的要求:这些同名的方法具有不同的参数列表,即参数的数量或参数类型不能完全相同。
重写:
重写简述:存在于两个类之间,目的是子类修改从父类继承过来的方法;是父类与子类之间多态性的一种表现。
可重写的条件:①发生继承关系②重写方法的声明与父类一模一样(方法的声明包括 返回值 方法名 参数列表 )③子类修饰符范围大于等于父类