this关键字
- this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
- this 的用法在 Java 中大体可以分为3种:
(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。
多态
多态通常体现在具有继承关系和实现关系的类之间,一个父类具有多个子类,可
以将子类对象直接赋值给一个父类引用变量,无需任何类型转换
子类重写父类的方法也是Java多态性的一种体现。当子类继承父类时,如果父
类的方法无法满足子类的需求,子类可以对父类中的方法进行改造,这种情况称
为“方法的重写”(override)
用子类初始父类的注意
- 只能调用父类中定义的方法和变量
- 如果子类中重写了父类中的某个方法,那么在调用该方法的时候,将会调用子类中的这个方法
- 变量不能被重写(覆盖)
参考下面的源代码与输出结果
源代码
public class ovrride {
public static void main(String []agrs) {
base b = new son();
System.out.println(b.num);
System.out.println(b.fun1());
b.show();
System.out.println(((son)b).fun2());
}
}
class base{
public String num="父类成员变量";
public String fun1() {
System.out.println(this.num);
return "父类调用";
}
public void show() {
System.out.println(this.num);
System.out.println(this.fun1());
}
}
class son extends base{
public String num="子类成员变量";
public String fun1() {
System.out.println(this.num);
return "子类调用";
}
public String fun2() {
return "子类特有方法";
}
}
输出结果
父类成员变量
子类成员变量
子类调用
父类成员变量
子类成员变量
子类调用
子类特有方法
总结
- 对于方法的覆盖 , new谁就调用谁。
- 对于变量的覆盖,this在哪个类就调用哪个类。