//parent class
class 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();
}
}
运行结果:
Employee
Manager
Employee
Supervisor
Employee
Manager
Manager 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(); 是啥意思?小弟小白,希望大神悉心讲解。感谢感谢!
添加回答
举报
0/150
提交
取消