java 多态 动态绑定,Java 继承extends、关键字super和this、多态、动态绑定

Manager 经理  extends Employee 雇员

"is-a"(是)关系是继承的一个明显特征。每个经理都是一名雇员。

从术语的角度讲,Manager是子类,Employee是超类。

子类不能够直接访问超类的私有域salary,要的话就必须使用公有接口,getSalary方法,但是这样还不行,因为子类本身也有自己的getSalary方法,这时我们希望调用的是超类的方法,就必须使用关键字super解决问题:super.getSalary();

super也可以在构造器中应用:

super(year,month,day);//调用超类Employee中含有year,month,day参数的构造器。

所以super关键字有两个用途:

1、调用超类的方法,

2、调用超类的构造器

在这里重温一下this关键字的两个用途:

1、指隐式参数(this.salary 隐式参数为对象),

2、调用该类其他构造器

public Employee(String name,String sex,String age){

this(year,month,day);

this.name = name; //this.name访问实例域

....

}

****************************************************************************

继承后我们来创建对象:

Manager boss = new Manager("Sam","man","20");

boss.setBonus(5000);

Employee[] earry = new Employee[3];

earry[0] = boss;

earry[1] = new Employee("Sam2","man","20","5000");

earry[2] = new Employee("Sam3","man","20","5000");

for(Employee e : earry){

System.out.println( e.getSalary() );

}

其实这段代码是为了证明,e.getSalary()能够确定执行哪个getSalary方法,尽管这里e声明为Employee类型,实际上e既可以应用Employee类型对象,又可以引用Manager类型对象,虚拟机知道e实际引用的对象类型。

一个对象变量(变量e)可以指示多种实际类型的现象被称为多态,在运行时能够自动选择调用哪个方法的现象称为动态绑定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值