中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

題目:美團(tuan)外賣(簡)

package com.gao.Reflect.test01;
  //接口的制定方:美團外賣
public interface Mtwm {
    //在線支付功能:
      void payonline();
}
package com.gao.Reflect.test01;

public class WeChat implements Mtwm{
    @Override
    public void payonline() {
        //具體實現微信支付的功能
        System.out.println("我已經點了外賣,正在進行微信支付");
    }
}

package com.gao.Reflect.test01;

public class AliPay implements Mtwm{
    @Override
    public void payonline() {
        //具體實現支付寶支付的功能
        System.out.println("我已經點了外賣,正在進行支付寶支付");
    }
}

package com.gao.Reflect.test01;

public class BankCard implements Mtwm{

    @Override
    public void payonline() {
        System.out.println("我已經點了外賣,正在進行銀行卡支付");
    }
}

package com.gao.Reflect.test01;

public class test {
    public static void main(String[] args) {
        // 定義一個字符串,用來模擬前臺的收銀方式
        String str = "支付寶"; //以后可以學習從前面接收的方法,現在選擇手動輸入
        //微信支付
        if("微信".equals(str)){//str.equals("微信")--->容易報空指針異常
            //new WeChat().payonline();//提取出一個方法
            pay(new WeChat());
        }

        //支付寶支付
        if("支付寶".equals(str)){
            //new AliPay().payonline();
            pay(new AliPay());
        }
        //銀行卡支付
        if("銀行卡".equals(str)){
            pay(new BankCard());
        }
    }
    /*第一種方法
    //微信支付
    public static void pay(WeChat wc){
        wc.payonline();
    }
    //支付寶支付
    public static void pay(AliPay ap){
        ap.payonline();
    }
    //銀行卡支付
    public static void pay(BankCard bc){
        bc.payonline();
    }
    */

    //第二種法
    //為了提高代碼的延展性--->面向對象的特性:多態
    //方法形參是接口,具體傳入的是接口的實現類的對象---->多態的一種形式
    public static void pay(Mtwm m){
        m.payonline();
    }
}

利用反射解決 (方法三)

package com.gao.Reflect.test01;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        String str = "com.gao.Reflect.test01.WeChat";//字符串:實際上是微信類的全限定路徑
        //下面的代碼就是反射
        Class cls = Class.forName(str);
        Object o = cls.newInstance();
        Method method = cls.getMethod("payonline");
        method.invoke(o);
    }
}

posted @ 2022-10-09 13:50  進步+吃飯  閱讀(78)  評論(0)    收藏  舉報