用接口名定义了一个变量,这是什么意思?

您所在的位置:网站首页 接口类型的变量可以指向它的实现类对象 用接口名定义了一个变量,这是什么意思?

用接口名定义了一个变量,这是什么意思?

2024-07-09 21:37| 来源: 网络整理| 查看: 265

首先我在包里面定义了一个Dao接口 如图所示: 在这里插入图片描述 然后在service类中用接口定义一个接口变量,形式为:接口名  变量名; 如图所示: 在这里插入图片描述

解释如下:

要定义变量,必须有变量类型,Java中有基本类型(8种)和引用类型,接口属于引用类型;这里接口可以定义变量,但是,后面new的内容不能是 new ImobilStorage (),因为接口不能实例化;要想实例化一个接口变量,可以new该接口的实现类,比如 new MobilStorageImpl (),java中称这种操作叫“多态”;

        这只是一个接口的引用,接口不能实例化对象,而接口的引用指向的是实现了接口方法的类的实例化对象。定义的接口的引用可以调用实现接口的方法,实现类对象指向接口引用被称为接口的多态。因为接口被类实现就必须重写接口的方法,而声明接口作为变量,实例化对象是该接口的实现类 ,这样我们就能调用实现类重写的方法。根据接口变量的实例化对象是不同的实现该接口的类,调用被实例化对象的方法。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3