一、方法的重写
1. 为什么要重写方法? 在子类继承父类方法的过程中难免需要对继承的方法进行一些修改,于是就有了方法的重写操作。 2. 重写方法需要注意的点
- 重写的方法名和形参列表应和父类相同。
- 重写的权限修饰符不小于父类的
- 不能重写私有的方法
- 我们规定子类中叫重写的方法 父类中叫被重写的方法
二、super关键字
1.super关键字的作用 当子类重写父类的方法之后,子类对象就无法访问父类中被重写的方法,这时候就需要用到super关键字,除此之外super也可以访问父类的成员变量。 2.使用super关键字调用父类的成员变量
public class person {
String name;
int age=3;
}
public class man extends person{
int age=2;
public void hh()
{
System.out.println("age="+super.age);
}
}
public class persontest {
public static void main(String[] args) {
man p1=new man();
p1.hh();
}
}
此时输出的结果应该为3 但做出如下改变
public class man extends person{
int age=2;
public void hh()
{
System.out.println("age="+age);
}
}
此时的结果就为2了 通常情况下super关键字是可以省略的,但当子类和父类中定义同名的变量名则不可省略 3.this与super this关键字是先找子类中同名的变量再去找父类 super直接去找父类,如果父类没有则继续去上一次父类寻找 4使用super关键字调用父类的构造方法 1.格式为super(形参列表) 2.super(形参列表)必须声明在子类构造器的首行 3.如果子类构造器中没有super(形参列表)则默认调用父类中空参的构造器
package java学习.duotai;
public class person {
public person()
{
System.out.println(666);
}
}
public class man extends person{
int age=2;
public man()
{
}
}
package java学习.duotai;
public class persontest {
public static void main(String[] args) {
man p1=new man();
}
}
输出结果为666说明man调用了父类person的空参构造器
|