关于接口的那些事

1.先了解一下什么是接口?

      在java中接口可以含有变量和方法,它可供别人调用的。并且,接口中的变量只能是public static final变量,用其它的修饰会报错。而方法会被指定为public abstract这种抽象形式的,其它的关键字(private、protected、static、final等)也是不行的,这都是固定的写法。

那么,接口的本质是什么呢?或者说接口存在的意义是什么呢?

//下面的这段内容是借鉴别人的,在这里感觉解释的比较容易理解。

      接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
例如,在自然界中,人都能吃饭,即“如果你是人,则必须能吃饭”。那么模拟到计算机程序中,就应该有一个IPerson(习惯上,接口名由“I”开头)接口,并有一个方法叫Eat(),然后我们规定,每一个表示“人”的类,必须实现IPerson接口,这就模拟了自然界“如果你是人,则必须能吃饭”这条规则。

2.如何定义一个接口?

  例如:一个接口,这个接口里面有一个方法,能够得到所有的学生信息:

public interface 接口名 {

      //定义变量(示例)

  //public static final int i=10;

  //定义方法,得到所有的学生信息

  public  List<Student> getAllInfo();

}

到这里,一个简单的接口就算定义完成了。

3.注意:在接口中定义的方法,不能够有具体的实现代码。而具体的实现代码需要你重新定义一个类,这个类需要实现接口(上面定义的接口),并实现接口里面的所有方法。

public class stuImpl implements 接口名 {

  public List<Student> getAllInfo{

    //具体的得到学生信息的代码

    }

}

通过接口创建接口的实现类:

即:接口名 impl=new stuImpl();  //在这里很多人都会问“接口不是不可以对象吗”?????在下面会有说明。

这样就可以通过impl来调用具体的方法了,

即:impl.getAllInfo();

4.解决 ”java中接口可以创建对象吗“?

        java接口可以创建对象,是指对其实例化。但接口是无法进行是实例化对象(也就是不能直接new出对象),而要使用接口中的方法要怎么做呢?因为我们知道接口中的方法仅仅只是定义了方法的结构,包含其修饰符,返回值类型以及方法名和参数列表,而(接口里)没有具体的实现细节,所以 要调用其方法就必须有【其(接口)】实现类来实现他的所有方法才可以被调用,被调用的时候创建实例可以是
接口实现类 类对象 = new 接口实现类(); 的方式创建对象(实例)
也可以使用
接口 对象 = new 接口实现类();  的方式创建。
第一种方式是常见的创建对象的形式,而第二种则是先创建一个数据类型为“接口(类)”类型的数据引用“对象”,然后将这个引用指向他的具体实现类,然后就可以通过对象.接口方法的形式调用该接口中的方法了。

总结:接口不能被创建对象,  只有接口被类实现后(实例化),并把接口里所有抽象方法复写后才可创建该类对象。

 

posted @ 2016-10-16 15:27  从你的世界路过潘  阅读(141)  评论(0编辑  收藏  举报