• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

向上转型和向下转型

//parent classclass Employee{    public Employee(){        System.out.println("Employee");    }    public  void print()    {        System.out.println("Employee Details");    }}// child class class Manager extends Employee{    public Manager()    {        System.out.println("Manager");    }    public void print()    {        System.out.println("Manager Details");    }}// child class   class Supervisor extends Employee   {       public Supervisor()       {           System.out.println("Supervisor");       }       public void print()       {           System.out.println("Supervisor Details");       }   }   class Test    {       public static void main(String[] args) {           Employee emp1, emp2; //reference            Manager m1;           Supervisor s1;           emp1 = new Manager();           emp2 = new Supervisor();           Employee emp3 = new Manager();//Upcasting of Object           m1 = (Manager) emp1;     // Employee reference but Manager Object -> DownCasting           s1=(Supervisor) emp2;           emp3.print();                            }   }  运行结果:EmployeeManagerEmployeeSupervisorEmployeeManagerManager Details这里面有几个问题我不明白。

1.例如class Employee中的 public Employee()和 public  void print()这两个语句有啥区别?他们的作用是不是输出Employee和Employee Details?
2.最后psvm中的Employee emp1, emp2;
把Employee创建为两个对象是什么意思?  这一句中的emp1和emp2是不是指代的一样的意思?只是在后面把其指代为不同的对象?
3.emp1 = new Manager();  new了一个Manager()对象,并被emp1指向,但是此时的emp1是等于Manager class中的"Manager"还是"Manager Details"??
4.运行结果是怎么运行的才得到的这样一个结果呢?emp3.print(); 是啥意思?


小弟小白,希望大神悉心讲解。感谢感谢!

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与2

我不知道你java学到了甚么程度,如果连public Employee()和public void print()这两个语句的区别都不清楚,后面三个问题也没必要去了解了,先学明白java基础语法再说。

使用道具 举报

当你new的时候,会先执行父类的构造方法,再执行子类的构造方法

使用道具 举报

发新帖

发布任务需求已有1031289位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!