【基础】实现多态性

理论概念

多态是java中非重要的概念,它的实现基于继承和封装,就是说多态必须前提是有子类继承父类,父类为提供这些接口方法,给子类覆盖或实现。子类必须完善这些父类提供的方法。或者子类向上转型为父类,实现多态。

java的多态分为两种:1,编译时多态,2,运行时多态

1,所谓编译时多态就是在编译阶段就已经绑定好关系(实际应用最多)

2,所谓运行时多态就是在程序装入内存后,运行到某个方法区才会绑定上 

父类

package com.ufgov.pd.fiscal.test;

/**
 * 模板
 *
 * @author yangwf
 * @date 2022-11-13 20:36
 */
public abstract class AbstractClassA {

    public void getAgency(IAinterface inter, String data){
        //-------------------
        //------抽取业务代码段--
        //-------------------
        inter.getRun("测试数据",data);
    }

}

子类A


/**
 * 模板
 *
 * @author yangwf
 * @date 2022-11-13 20:37
 */
public class A extends AbstractClassA{

    public void getClassA(String a){
        IAinterface face = new IAinterface() {
            @Override
            public void getRun(String param,String n) {
                System.out.println(param + "?" + n);
            }
        };
        this.getAgency(face,a);
    }

}

子类B

package com.ufgov.pd.fiscal.test;

/**
 * 模板
 *
 * @author yangwf
 * @date 2022-11-13 20:48
 */
public class B extends AbstractClassA{

    public void getClassB(String b){
        IAinterface face = new IAinterface() {
            @Override
            public void getRun(String param, String n) {
                System.out.println(param + "?" + n);
            }
        };
        this.getAgency(face,b);
    }
}

接口类

package com.ufgov.pd.fiscal.test;

/**
 * 模板
 *
 * @author yangwf
 * @date 2022-11-13 20:41
 */
public interface IAinterface {
    void getRun(String param,String n);
}

测试类

package com.ufgov.pd.fiscal.test;

/**
 * 模板
 *
 * @author yangwf
 * @date 2022-11-13 21:04
 */
public class C {
    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        a.getClassA("---类A的数据---");
        b.getClassB("---类B的数据---");
    }
}

测试结果

测试数据?---类A的数据---
测试数据?---类B的数据---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值