zoukankan      html  css  js  c++  java
  • java 父类对象 和 子类对象 的类型转换

    /**
     * 父类对象 和 子类对象  的类型转换
     */
    public class TypeCast{
        public static void main(String[] args){
            Employee[] staff = new Employee[3];
            staff[0] = new Employee();
            System.out.println(staff[0]);
            System.out.println(staff[1]);
    
            //Manager boss0 = staff[0];  //java.lang.Error: Unresolved compilation problems:
                                         //Type mismatch:cannot convert from Employee to Manager
    
            //Manager boss0 = (Manager)staff[0]; //ClassCastException: Employee cannot be cast to Manager
            Manager boss0 = (Manager)staff[1];  //staff[1] is null, can give to boss0
            System.out.println(boss0);
    
            Manager boss = new Manager();
            System.out.println(boss);
    
            staff[0] = boss;  // subclass object assign to reference
            System.out.println(staff[0]);
        }
    }
    
    class Employee{
        private String name;
        public Employee(){
            this("emplyee");
        }
        public Employee(String name){
            this.name = name;
        }
        public String toString(){
            return name;
        }
    }
    
    class Manager extends Employee{
        private int bonus;
        public Manager(){
            super("manager");
            bonus = 1;
        }
        public String toString(){
            return super.toString() + " " + bonus;
        }
    }
    
  • 相关阅读:
    Android编译相关资料的网址
    npm项目编译
    JAVA项目编译
    docker 常用命令[转载]
    jenkins安装的时候 提示字体问题的解决方法
    deployment
    kube-proxy运行机制分析【转载】
    kubelet tls
    js执行上下文和执行栈
    js事件循环(event loop)
  • 原文地址:https://www.cnblogs.com/billxxx/p/12058490.html
Copyright © 2011-2022 走看看