美文网首页
关于继承与多态

关于继承与多态

作者: mark_x | 来源:发表于2019-09-26 17:11 被阅读0次

Manager类继承自Employee类。
创建子类Manager类的实例对象boss:

Manager boss = new Manager("Carl Cracker", 80000,1987, 12 , 15) ;
boss.setBonus(5000) ;

下面定义一个包含 3 个雇员的数组,将经理和雇员都放到数组中:

Employee[] staff = new Employee[3];
staff [0] = boss;
staff [1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
staff [2] = new Employee("Tony Tester", 40000, 1990, 3, 15);
// 输出每个人的薪水:
for (Employee e : staff){
        System.out.println(e.getName() + " " + e.getSalary());
}

运行这条循环语句将会输出下列数据:
Carl Cracker 85000.0
Harry Hacker 50000.0
Tommy Tester 40000.0

这里的 staff[1] 和 staff[2] 仅输出了基本薪水,这是因为它们对应的是Employee 对象,而 staff[0] 对应的是 Manager 对象, 它的 getSalary 方法将奖金与基本薪水加在了一起。需要提到的是,e.getSalary()调用能够确定应该执行哪个 getSalary 方法。请注意, 尽管这里将 e 声明为 Employee 类型,但实际上 e 既可以引用 Employee 类型的对象,也可以引用 Manager 类型的对象。

当 e 引用 Employee 对象时,e.getSalary() 调用的是 Employee 类中的 getSalary 方法;当e 引用 Manager 对象时,e.getSalary( ) 调用的是 Manager 类中的 getSalary 方法。虚拟机知道e 实际引用的对象类型,因此能够正确地调用相应的方法。

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

相关文章

  • 关于继承与多态

    Manager类继承自Employee类。创建子类Manager类的实例对象boss: 下面定义一个包含 3 个雇...

  • 面向对象

    继承与多态

  • 程序组第二次作业代码

    继承与多态: 接口作业:

  • 《Java8学习笔记》读书笔记(七)

    第6章 继承与多态 学习目标 了解继承的目的 了解继承与多态的关系 知道如何重写方法 认识java.lang.Ob...

  • 13. 关于多态性

    关于多态性 答案:多态,子类指针可以赋值给父类。 这个题目其实可以出到一切面向对象语言中, 因此关于多态,继承和封...

  • golang-面向对象

    思考:go语言不支持继承与多态的优点与缺点是什么 go语言只支持封装,不支持继承与多态 go语言没有class,只...

  • js-继承和闭包

    继承和闭包 一、面向对象的三大特征 封装 继承 多态 二、什么是继承 继承是面向对象软件技术当中的一个概念,与多态...

  • PHP学习2

    六.继承与多态 1. 类的组合和继承(继承===“是、像”、“父与子”,组合===“需要”、“整体与局部”) 组合...

  • 2020-05-16--Java--day09【继承、super

    1.继承 三大特征:封装,继承,多态 继承是多态的前提,没有继承就没有多态 继承的主要解决的问题就是:共性抽取 在...

  • Java多态及相关

    面向对象有三大特征:封装、继承、多态。从一定角度看,封装与继承是为多态准备的。多态也是面向对象中最重要的概念。 多...

网友评论

      本文标题:关于继承与多态

      本文链接:https://www.haomeiwen.com/subject/pxvkuctx.html