zoukankan      html  css  js  c++  java
  • 【Java接口实现动态加载不同的类】

    public interface Person {    
       public double calcuMonthlySalary(double sal, int type);    
     }  
    public class Manager implements Person {    
         public Manager () {        }    
        public double calcuMonthlySalary(double sal, int type) {    
               System.out.println("Manager: "+(sal*type*3));    
                return sal*type*2;    
        }    
    }    
    public class Employee implements Person {    
        public Employee () {        }       
         public double calcuMonthlySalary(double sal, int type) {    
            System.out.println("Employee: "+(sal*type*2));    
            return sal*type*1.5;    
        }   
    }    
    public class SalaryManageTest {       
           public static void main(String[] args) throws Exception{    
       
            Person personService = (Person)Class.forName(args[0]).newInstance(); 
         //Class.forName(类名)可以动态加载某个类,比如在控制台中Java SalaryManageTest Manager 1000 3,即可动态加载Manager类,args[1]=1000,args[2]=3.               
    if (args[1] != null && args[1] != "" &&                        args[2] != null && args[2] != "") {                    int sal = Integer.valueOf(args[1]).intValue();                    int type = Integer.valueOf(args[2]).intValue();            //这里可以根据传入参数的不同,调用不同的实现类,                //如果再增加一类新的成员,也只要新增一个类,无需修改方法                    personService.calcuMonthlySalary(sal, type);                }                 }       }  

    接口的作用?

    (1)通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系.
     
    (2)通过接口指明多个类需要实现的方法
     
    (3)利用接口的多态性,动态加载不同类的实例
     
  • 相关阅读:
    layer备忘
    Java中遍历Map对象的4种方法
    为什么Java中1000==1000为false而100==100为true?
    linux系统安装psycopg2
    centos7源码安装mysql5.7
    Azure Sql
    javascript和jQuery动态修改css样式的方法
    Git early EOF index-pack failed 问题
    C# 多线程——SemaphoreSlim的使用
    Docker 可视化
  • 原文地址:https://www.cnblogs.com/4everlove/p/3383590.html
Copyright © 2011-2022 走看看