zoukankan      html  css  js  c++  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)可以指示多种实际类型的现象被称为多态,在运行时能够自动选择调用哪个方法的现象称为动态绑定。

  • 相关阅读:
    zz解读NoSQL技术代表之作Dynamo
    愚蠢且能干
    Schema 验证和 DTD 验证
    Office Addin (VSTO) Performance Tips & Tricks
    提高 .NET 应用 XML 处理性能的几点开发经验(转载)
    C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)zz
    XML/XSLT/XPATH
    Linux下基于DNS的多机均衡负载的实现
    Linux 上的高可用中间件,第 3 部分: IBM LoadLeveler
    Creating Web Services using Apache
  • 原文地址:https://www.cnblogs.com/samwang88/p/6394811.html
Copyright © 2011-2022 走看看