java的继承中多态问题

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在哪个类就调用哪个类。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值