java的接口可以直接拿来声明变量?

问题描述

java的接口可以直接拿来声明变量?

public interface IUserManage {
public void addUser(User user);
public void modifyUser(User user);
public void deleteUser(User user);
}

现在有这么个接口,然后在另一个没有实现此接口的类里看到如下这句:
private IUserManage userManage;
在这个类里,直接声明了userManage,并且userManage可以直接调用接口里的那三个方法

接口不是只能用来implements实现吗?

解决方案

该接口,需要对应类实现,你说得对,用 implements
在另一个类中,声明接口变量 ,调用其方法,是可以的,因为接口方法被实现了。
你也可以理解为,是调用的实现接口的那个类的对象。
如果接口类没被实现,会报异常,提示你先实现接口。才能调用接口方法。
(你写接口就是让用的,其他类想调用它你说可以不可以。前提接口中的方法已被实现)
(这里面声明接口对象或说实现接口类的对象,是为了调用接口方法而不是要实现接口。)

解决方案二:

接口不能用于声明变量的

解决方案三:

正确调用接口:
现有接口 StudentDao ,实现接口的类 StudentDaoImpl ,该类中重写实现接口的方法

在其他类中或程序中想调用接口方法的话:
StudentDao studentDao = new StudentDaoImpl();
//另一中写法
StudentDao studentDao;
studentDao = new StudentDaoImpl();

引入接口和实现接口对应的包,就能调用接口中的方法了

时间: 2024-12-01 08:20:56

java的接口可以直接拿来声明变量?的相关文章

Java中接口和抽象类的区别与相同之处

  这篇文章主要介绍了Java中接口和抽象类的区别与相同之处,本文讲解了抽象类的概念.接口的概念.接口和抽象类的区别与联系等内容,需要的朋友可以参考下 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: 代码如下: public abstract class abstractDemo{ /**属性*/ private Stri

深入理解Java的接口与抽象类_java

对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:    abstract void

java类的问题-Java类的实例化,对象的声明,使用

问题描述 Java类的实例化,对象的声明,使用 有没有哪位大神帮忙解释一下图中的代码,本人是新手,希望各位前辈指教 解决方案 创建一个person类 类里面两个变量一个方法 方法体的内容是打印这个类里面变量的值 然后书上写错了 应该是person 不是person2 解决方案二: 书上说的很清楚了. 比如 int i = 1; 这个你懂么? i是一个int型的变量,初始化值指向一个整数1. 那么 helloworld c = new helloworld(); c是一个helloworld型的变

java中接口没有构造方法那子类怎么访问他的数据

问题描述 java中接口没有构造方法那子类怎么访问他的数据 感觉跟以往学过的知识冲突了?哪位大神能伸出援手解答下?这个问题困扰我好久了,希望走过路过的不要错过哈! 解决方案 接口有什么数据?接口就是一个定义,不存任何数据. 解决方案二: 接口中没有任何函数,接口不是类,不能构造一个接口.只能构造一个实现了这个接口的函数. 解决方案三: 接口就是公共方法的集合,只有公有常量和抽象方法,数据是类的属性,只有类才可以定义私有成员变量的. 解决方案四: 接口,不能实例化,没有构造方法 解决方案五: 接口

为什么java中的类里面还能声明一个静态的自己

问题描述 为什么java中的类里面还能声明一个静态的自己 如题,感觉这种情况好诡异,能不能解释一下下面这段代码的流程呢?代码如下 public class CameraInterface { private static final String TAG = "yanzi"; private Camera mCamera; private Camera.Parameters mParams; private boolean isPreviewing = false; private f

java中接口的实现类有的命名为XxxSupport,请问这个Support是什么意思,和XxxImpl意义相同吗

问题描述 如题:java中接口的实现类有的命名为XxxSupport,请问这个Support是什么意思,和XxxImpl意义相同吗,请问这是什么模式或者思想 解决方案 Support 一般是抽象类,里边存放子类可复用的东西 共性如 struts2的ActionSupport spring的 ***DaoSupporthttp://jinnianshilongnian.iteye.com/blog/1685963Impl表示实现:是个性 即细节实现,不同的Impl里边的算法可能不一样 但都是完成同

关于java中接口的作用

问题描述 关于java中接口的作用 java中接口有什么作用,新手,求教.为什么要写接口 我直接写实现的方法不就行了么 接口又有什么用 字典上解释接口时说系统中两个不同部分的链接的地方对吗 解决方案 你先要知道什么是接口,其次定义接口的作用,比如有一个类要实现好多方法,你不能让这个类继承所有的类去实现它里面的方法,因为java只支持单继承,当你用了接口以后,你可以在接口里面定义好那个类所需要的方法,然后让该类实现这个接口就可以,这样的话,就相当于你实现了一个类继承了多个类,而且在继承和接口中,还

继承-JAVA 实现接口方法时报错 implement a supertype method

问题描述 JAVA 实现接口方法时报错 implement a supertype method public interface MultimediaControl { public void play(); public void stop(); public void previous(); public void next(); } public class AudioPlayer extends Product implements MultimediaControl { String

泛型-java 缓存接口设计疑问。

问题描述 java 缓存接口设计疑问. 我想问,下面两种设计的区别 . 第一种 public interface ICache<T> { T getItem(Serializable key) ; void setItem(Serializable key, T item) ; } 第二种 public interface ILocalCache<K, V> { public V get(K key) ; void setItem(K key, V item) ; } 第一种跟第二